Dans mon application, j'essaie d'analyser l'objet json pour afficher les informations connexes dans recyclerview. J'ai implanté la désérialisation d'objet en utilisant gson Library. Maintenant, je veux cliquer sur chacun des éléments pour afficher les détails de la liste. pour cela essayez d'implémenter setOnItemClicklistener à recyclerView. mais je ne sais pas pourquoi je reçois ce message Erreur: (102, 29) erreur: ne peut pas trouver la méthode de symbole setOnItemClickListener(). Voici mon code complet de l'activité principaleObtenir une erreur sur la méthode setOnItemClickListener android
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;
}
}
Comment l'implémenter dans mon code. Je suis très nouveau dans le développement de nadroid. pourriez-vous expliquer comment je peux l'implémenter ici –
Vous pouvez vérifier la section 2.2 & 2.3 dans [ce] blog (https://tutorialwing.com/android-recyclerview-tutorial-example/) blog. –