使用ListView

时间:2018-01-03 05:49:02

标签: java android listview

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

我是编码的初学者,我有一个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>

2 个答案:

答案 0 :(得分:0)

 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                        @Override
                        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

                        }
                    });

答案 1 :(得分:0)

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

Reference