我想在单击Listview
中的项目时启动新活动。但是当单击一个项目时,没有任何反应。Logcat 消息中没有任何内容。这两个活动都在 AndroidManifest 中声明。
ListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent myIntent = new Intent(view.getContext(), SecondActivity.class);
myIntent.putExtra("test", "hello");
startActivity(myIntent);
}
});
首先,您需要在 listView 对象中设置ItemClick listener
。
ListView yourListView.setOnItemClickListener
然后,您需要在Intent
中传递活动的上下文
Intent myIntent = new Intent (view.getContext()ThisActivityName.this, SecondActivity.class);
代码片段:
ListView yourListView = (ListView) findViewById(R.id.listviewid);
yourListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent myIntent = new Intent(ThisActivityName.this, SecondActivity.class);
myIntent.putExtra("test", "hello");
startActivity(myIntent);
}
});
希望对ツ有帮助
试试这个列表视图
final ListView list = (ListView) findViewById(R.id.list);
list.setItemsCanFocus(false);
此外,请确保列表项内的复选框设置为可聚焦 false
android:focusable="false"
android:focusableInTouchMode="false"
来源:setOnItemClickListener() 不适用于自定义列表视图 @ Android
尝试使用此代码,
ListView listView=(ListView) findViewById(R.id.list);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent myIntent = new Intent(ActivityName.this, SecondActivity.class);
myIntent.putExtra("test", "hello");
startActivity(myIntent);
}
});
对于列表视图中的多个选项 您可以使用以下代码。
lv_1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
String s = lv_1.getItemAtPosition(position).toString();
Toast.makeText(getApplicationContext(), s, Toast.LENGTH_LONG).show();
switch (position) {
case 0:
Intent newActivity = new Intent(MainActivity.this, Android.class);
startActivity(newActivity);
break;
case 1:
Intent newActivity1 = new Intent(MainActivity.this, Iphone.class);
startActivity(newActivity1);
break;
case 2:
Intent newActivity2 = new Intent(MainActivity.this, Window.class);
startActivity(newActivity2);
break;
}
}
;
});