【问题标题】:Calling onClick method with item in ListView [duplicate]使用 ListView 中的项目调用 onClick 方法 [重复]
【发布时间】:2018-06-12 19:14:54
【问题描述】:

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

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


【解决方案1】:
 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                        @Override
                        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

                        }
                    });

【讨论】:

  • 你好,这个放在哪里?
  • 初始化listView后(listView=findViewById(pass id here))
  • 不太明白,是不是直接把你的代码贴在主活动下?我真的不知道我把它放在主要活动的哪里,你能在我的代码上下文中告诉我吗?非常感谢!
  • 为什么要扩展ListActivity,只是用MainActivity扩展Activity,然后初始化一个listView
【解决方案2】:
listView.setOnItemClickListener(new OnItemClickListener() {
 @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Object o = prestListView.getItemAtPosition(position);
        //....
    }
});

Reference

【讨论】:

  • 你好,我是一个完整的初学者,我想调用的方法放在哪里? int位置,长id词是什么意思??
  • 视图在适配器中的位置和被点击的项目的行id
  • 你能帮我把它放在我的代码中吗?对不起,我不明白,因为我是一个完整的初学者。也许您可以如此友善并发布另一个包含放入我的代码中的代码的答案?非常感谢你,如果你能做到的话
猜你喜欢
  • 1970-01-01
  • 2015-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多