onItemClick使用多个ListView

时间:2014-06-06 05:41:30

标签: android listview android-listview onitemclicklistener onitemclick

我有一个包含多个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

我会继续搜索和尝试,因为我知道它必须是一个解决方案而不改变所有代码,但如果有人可以提供帮助......

谢谢大家。

1 个答案:

答案 0 :(得分:0)

尝试以下两种方式中的任何一种,这对您有所帮助......

  1. 在第二段代码中,只需从课程

    中删除implements AdapterView.OnItemClickListener即可

    public class MyClass extends Activity implements AdapterView.OnItemClickListener

  2. 并运行代码。

    1. 用此::

      替换您的代码
      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);
          }
      
      }