我已經構建了一個測試應用程序,該應用程序在listview上顯示少量記錄。我在哪裏放置OnItemClickListener?
現在我想點擊一個項目,並查看android studio的調試信息。
我知道我應該創建一個OnItemClickListener,但我不確定我應該放置它的位置。
我試着把它放在主要活動上,應用程序工作,但點擊功能從來沒有被調用,所以有什麼問題。
我環顧了Google尋求幫助,但我無法圍住它。
它應該是一個直接的行動(我有一個列表,我點擊一個項目),但我無法使它工作。
這是我試過到目前爲止:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import java.util.LinkedList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listView = (ListView) findViewById(R.id.listViewDemo);
List list = new LinkedList();
list.add(new Contatto("Antonio","Rossi","1234567890"));
list.add(new Contatto("Pino","Bianchi","2345678901"));
list.add(new Contatto("Peppe","Verdi","3456789012"));
list.add(new Contatto("Leo","Rossi","4567890123"));
list.add(new Contatto("Mario","Blu","56789"));
list.add(new Contatto("Aldo","Da Vinci","6789"));
CustomAdapter adapter = new CustomAdapter(this, R.layout.rowcustom,list);
listView.setAdapter(adapter);
OnItemClickListener clickListener = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view,
int position, long id) {
Contatto c = (Contatto)adapter.getItem(position);
Log.d(c.getNome(),c.getTelefono());
}
};
listView.setOnItemClickListener(clickListener);
}
}
OnItemClickListener無法識別,並且既不的getItem。
android studio的自動更正提議我更改爲「AdapterView.OnItemClickListener」,getItem有nooptions被識別。
我試圖在類聲明中添加「implements OnItemClickListener」,但它也不起作用(提供錯誤,名稱是紅色的,android studio沒有提供解決方案)。
有一次,我能夠刪除所有的錯誤,但代碼仍然沒有工作,我不記得我做了什麼,我只是擺弄。
正在搜索「click listview android」在SO上顯示多個答案,這些都沒有幫助? 如果沒有,你應該發佈你的代碼,以便人們有回顧的東西,這將有助於回答你的問題,而不會猜測多個潛在的問題。 – dominicoder
@dominicoder我已經添加了代碼和進一步的說明 – Terix