【问题标题】:Android List Activity not working wellAndroid List Activity 无法正常工作
【发布时间】:2014-05-13 22:41:22
【问题描述】:

大家好, 我在重新列出活动时遇到了一点问题。我想创建一个简单的( 1 、 2 、 3 、 4 、 5 )列表,当我点击它们时,会弹出一个 Toast 并说点击。但是应用程序没有运行。当我删除列表(扩展活动而不是 ListActivity )时。该应用程序只是简单地运行并显示一个列表。我想申请 OnlistItemClick。希望你能帮忙。这是xml和java代码。

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical"
   tools:context="com.annotationap.MainActivity$PlaceholderFragment" >

<ListView
    android:id="@+id/listView1"
    android:layout_width="match_parent"
    android:layout_height="256dp" >

</ListView>

</LinearLayout>

java代码

public class MainActivity extends ListActivity {




 private String[] array = {"1", "2" ,"3","4","5"};


@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ListView listView1;
    listView1 = (ListView) findViewById(R.id.listView1);
    ArrayAdapter<String> aa = new ArrayAdapter<String>( this,    android.R.layout.simple_list_item_1, array );
    listView1.setAdapter(aa);

}


@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    // TODO Auto-generated method stub
    super.onListItemClick(l, v, position, id);

     Toast.makeText(this,"Clicked" , Toast.LENGTH_LONG).show();
}

}

【问题讨论】:

    标签: android android-layout android-listview


    【解决方案1】:

    我觉得问题不大,发帖前先搜索一下, 只需在 XML 文件中更改 listView 的 id

    android:id="@android:id/list"

    如果您要使用 ListActivity,那么您必须关心 listView 的 ID,您可以更改它,但您必须使用 ListActivity 以外的简单 Activity。

    【讨论】:

      【解决方案2】:

      听起来您想在普通的Activity 中实现AdapterView.OnItemClickListener。在这种情况下,这里有一个简单的例子:

      public class MainActivity extends Activity implements OnItemClickListener, OnItemLongClickListener {
      
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
      
              ListView list = (ListView) findViewById(R.id.listView1);
              list.setOnItemClickListener(this);
              list.setOnItemLongClickListener(this);
          }
      
          @Override
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
              Toast.makeText(this, "Clicked!", Toast.LENGTH_SHORT).show();
          }
      
          @Override
          public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
              Toast.makeText(this, "Long clicked!", Toast.LENGTH_SHORT).show();
              return true;
          }
      
      }
      

      【讨论】:

      • 谢谢。问题解决了。你能在 onItemLongClik 上给我一些指导吗?想用那个功能做同样的事情。谢谢
      • 长按无效。编码它运行安静。但是 longclick 不起作用。
      • @user3194062 你打电话给list.setOnItemLongClickListener(this)了吗?
      • 是的,我修好了。谢谢你的时间。非常感谢您的帮助。
      【解决方案3】:

      您没有为 listView1 设置侦听器。在 onCreate 你想设置这样的东西:

      listView1.setOnItemClickListener(listener);
      

      不过有几种方法可以做到这一点:

      我总是这样做:

      protected void onCreate(Bundle savedInstanceState) {
      
          //Standard onCreate stuff
      
          getListView().setOnItemClickListener(new OnItemClickListener() {
      
                  public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) {
                      //this will run on click. 
                  }
              });
      

      How can i attach an listener to listview?

      听众信息: http://martin.cubeactive.com/android-onclicklitener-tutorial/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-03-10
        • 2012-09-13
        • 2012-03-24
        • 2012-11-03
        • 2013-11-24
        • 1970-01-01
        • 2014-09-17
        相关资源
        最近更新 更多