Ich versuche, ein Basis-OnClick-Ereignis an eine Liste der Kontakte vom Gerät anzufügen. Die Liste der Kontakte wird korrekt generiert. Eine Zusammenfassung meines Codes ist wie folgt:Kontakte LoaderManager und AdapterView OnClick
public class Contacts extends AppCompatActivity implements
LoaderManager.LoaderCallbacks<Cursor>,
AdapterView.OnItemClickListener
{
...
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contacts_list_view);
//initialise loader
getSupportLoaderManager().initLoader(CONTACTS_LOADER_ID, null, this);
mContactsList = (ListView) findViewById(android.R.id.list);
//Gets a CursorAdapter
mCursorAdapter = new SimpleCursorAdapter(
this,
R.layout.contacts_list_item,
null,
FROM_COLUMNS, TO_IDS,
0);
//Sets the adapter for the ListView
mContactsList.setAdapter(mCursorAdapter);
}
}
//Followed by all the loader functions
public Loader<Cursor> onCreateLoader(int loaderId, Bundle args) {}
...
public void onItemClick (AdapterView<?> parent, View view, int position, long id){
Toast.makeText(this,
"hello world",
Toast.LENGTH_SHORT).show();
}
Mein onItemClick funktioniert jedoch nicht. Muss ich zuerst eine Instanz von OnItemClickListener erstellen. Ich habe versucht, dies innerhalb der onCreate-Methode und außerhalb zu tun und beide arbeiten nicht.
Anschließend haben versucht, ich folgendes: In meinem onCreate Methode
mContactsList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(),
"hello world",
Toast.LENGTH_SHORT).show();
}
});
Wie stellen Sie die clicklistener auf Ihrer Liste? Sie müssen wahrscheinlich während onCreate tun: listView.setOnItemClickListener (this); – W0rmH0le
hi, der Fehler, den ich dann erhalte, ist die Klasse 'Kontakte' muss als abstrakte Methode deklariert werden OnitemClick in OnItemClickListener –
Wenn Sie den Listener wie folgt setzen "mContactsList.setOnItemClickListener (new AdapterView.OnItemClickListener()", sollten Sie "implements AdapterView .OnItemClickListener "aus Ihrer Klassendeklaration – W0rmH0le