使用ListView中的项调用onClick方法[重复]

问题描述 投票:0回答:2

这个问题在这里已有答案:

编辑:这与其他问题不同,因为它询问如何调用基本意图。

我是编码的初学者,我有一个Listview和几个项目

我希望这些列表视图中的每一个都调用不同的方法。

怎么能实现这一目标?我已经尝试将该方法放在列表项的布局下,但这会导致所有项调用相同的方法。

被调用的方法将启动包含信息的单独活动。如何制作它以便在单击每个项目时调用另一种方法?谢谢你帮助一个菜鸟!

列表视图代码:activity_main.xml

<ListView
        android:id="@+id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

Mainactivity.java:包含要调用的列表视图和方法

public class MainActivity extends ListActivity {

    String[] itemname ={
            "Nucleus",
            "Cytoplasm",
            "Mitochondria",
            "Golgi Apparatus",
            "Ribosomes",
            "Vacuole",
            "Chloroplast",
            "Central Vacuole",
            "Cell Membrane",
            "Cell Wall"
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        this.setListAdapter(new ArrayAdapter<String>(
                this, R.layout.mylist,
                R.id.Itemname,itemname));
    }

    public void explainCellMembrane(View view) {
        startActivity(new Intent(MainActivity.this, MembraneActivity.class));
    }

我的列表项布局:mylist.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >
    <ImageView
        android:id="@+id/icon"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="5dp"
        android:src="@drawable/sample_image" />
    <TextView
        android:id="@+id/Itemname"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:paddingTop="5dp"
        android:onClick="explainCellMembrane"/>
</LinearLayout>
java android listview
2个回答
0
投票
 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                        @Override
                        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

                        }
                    });

0
投票
listView.setOnItemClickListener(new OnItemClickListener() {
 @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Object o = prestListView.getItemAtPosition(position);
        //....
    }
});

Reference

© www.soinside.com 2019 - 2024. All rights reserved.