我有一个包含多个ListView的布局,完美无缺,我无法捕捉任何项目的任何点击。
所有ListViews上的项目具有相同类型的信息,我打算使用一个适配器在另一个布局上显示该信息。
我搜索过,我找到了2个好方法,当我点击任何项目时第一种方式什么都不做,第二种方法不让我开始目的地活动,我不知道该做什么更...
包含ListView的布局:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<FrameLayout
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_weight="1" >
<TextView
android:id="@+id/day1"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center_vertical|center_horizontal" />
<ListView
android:id="@+id/list1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="50dp" >
</ListView>
</FrameLayout>
<FrameLayout
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_weight="1" >
<TextView
android:id="@+id/day2"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center_vertical|center_horizontal" />
<ListView
android:id="@+id/list2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="50dp" >
</ListView>
</FrameLayout>
....
....
</LinearLayout>
这是我的第一个代码:
public class MyClass extends Activity implements OnItemClickListener {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Object o = arg0.getAdapter().getItem(arg2);
Intent i = new Intent(MyClass .this, ViewMyClass.class);
startActivity(i);
}
}
当我点击任何项目时,它什么都不做,我不知道为什么......
我的secon代码:
public class MyClass extends Activity implements AdapterView.OnItemClickListener {
lv1 = (ListView) findViewById (R.id.list1);
lv1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
Object o = arg0.getAdapter().getItem(arg2);
Intent i = new Intent(MyClass .this, ViewMyClass.class);
startActivity(i);
}
});
}
使用此代码,当我点击第一个ListView的项目时,不启动活动ViewMyClass而且也不知道为什么
我也尝试过这样做而没有:
AdapterView.OnItemClickListener with more ListView
ListView onItemClick not working in the Activity
我也尝试过这样做,但是如果我用ListFragment更改扩展Activity,几乎所有可行的代码都会变成错误......
Android programming - onitemclicklistener for multiple listviews doesn't work
我会继续搜索和尝试,因为我知道它必须是一个解决方案而不改变所有代码,但如果有人可以提供帮助......
谢谢大家。
答案 0 :(得分:0)
尝试以下两种方式中的任何一种,这对您有所帮助......
在第二段代码中,只需从课程
中删除implements AdapterView.OnItemClickListener
即可
public class MyClass extends Activity implements AdapterView.OnItemClickListener
并运行代码。
用此::
替换您的代码public class MyClass extends Activity implements AdapterView.OnItemClickListener {
@Override
public void onCreate(Bundle icicle){
super.onCreate(icicle);
setContentView(R.layout.your_layout);
lv1 = (ListView) findViewById (R.id.list1);
lv1.setOnItemClickListener(this);
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
Object o = arg0.getAdapter().getItem(arg2);
Intent i = new Intent(MyClass .this, ViewMyClass.class);
startActivity(i);
}
}