【问题标题】:Getting error on setOnItemClickListener method android在 setOnItemClickListener 方法 android 上出现错误
【发布时间】:2017-07-16 12:26:12
【问题描述】:

在我的应用程序中,我试图解析 json 对象以在 recyclerview 中显示相关信息。我已经使用 gson 库实现了对象的反序列化。现在我想设置单击每个项目以显示列表的详细信息。为此尝试将 setOnItemClicklistener 实现到 recyclerView。但我不知道为什么我会收到此消息错误:(102、29)错误:找不到符号方法 setOnItemClickListener()。这是我的主要活动的完整代码

import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Toast;

import com.google.gson.Gson;
import com.testgrid.MainActivity;
import com.testgrid.R;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;


public class MyColleaguesPage extends AppCompatActivity {

private RecyclerView recyclerView;
private RecyclerView.Adapter adapter;
private List<MyColleageModel> colleagueObject;
InputStream is;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mycolleagues_layout);
    recyclerView = (RecyclerView) findViewById(R.id.colleagues_recycler);
    recyclerView.setHasFixedSize(true);
    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(MyColleaguesPage.this);
    recyclerView.setLayoutManager(layoutManager);
    new JSONTask().execute();
  }

  public class JSONTask extends AsyncTask<String, String, List<MyColleageModel>> {
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected List<MyColleageModel> doInBackground(String... params) {

        colleagueObject = new ArrayList<MyColleageModel>();

        try {

            JSONObject parentObject = new JSONObject(loadJSONFromAsset());
            JSONArray parentArray = parentObject.getJSONArray("contacts");
            Gson gson = new Gson();
            for (int i = 0; i < parentArray.length(); i++) {
                JSONObject finalObject = parentArray.getJSONObject(i);
                MyColleageModel model = gson.fromJson(finalObject.toString(), MyColleageModel.class);


                colleagueObject.add(model);

            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return null;
    }


    @Override
    protected void onPostExecute(final List<MyColleageModel> result) {
        super.onPostExecute(result);
        if (result != null) {
            adapter = new MyColleaguesAdapter(colleagueObject, getApplicationContext());
            recyclerView.setAdapter(adapter);
          //Problem in this setOnItemClickListener
            recyclerView.setOnItemClickListener(new AdapterView.OnItemClickListener() { //problem in this line
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    MyColleageModel myColleageModel=result.get(position);
                    Intent intent = new Intent(MyColleaguesPage.this, DetailMyColleague.class);
                    intent.putExtra("contacts", new Gson().toJson(myColleageModel));
                    startActivity(intent);
                }
            });
        } else {
            Toast.makeText(getApplicationContext(), "Not able to fetch data from server", Toast.LENGTH_SHORT).show();
         }
     }
 }

    private String loadJSONFromAsset() {
        String json = null;
        try {

           ................
        return json;

   }
 }

【问题讨论】:

    标签: android android-recyclerview android-arrayadapter onitemclicklistener android-adapterview


    【解决方案1】:

    您不应该在 recyclerView 上使用 setOnItemClickListener。相反,请使用addOnItemTouchListener。您应该创建一个实现RecyclerView.OnItemTouchListener 的新类。请参阅this 以供参考。

    【讨论】:

    • 如何在我的代码中实现这一点。我在 nadroid 开发方面非常新。你能解释一下我如何在这里实现它吗
    • 您可以在this 博客中查看第 2.2 和 2.3 节。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    相关资源
    最近更新 更多