从onclick事件/onclick事件行为获取数据

dffbzjpn  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(483)

我已经编写了一段时间的代码,但我从来没有采取任何课程,所以我有一些问题,一些东西是如何工作的。其中之一就是onclick听众。我有一个关于onclick事件的问题,更确切地说是onitemclick事件。
假设我有一个简单的listview,并且我想处理onitemclick事件,我会有如下内容:

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

ListView lv = (ListView)findViewById(R.id.listView);

String parameter = "123";

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String item = parent.getItemAtPosition(position).toString();
                // TODO1
            }

}
// TODO2

有没有方法传递'item'的值以便我可以在'todo2'中使用它?
另外,如果我在todo1中有一些事情要做,并且需要'parameter'变量,那么有没有方法将其传递到onitemclick方法中?
谢谢!

2o7dmzc5

2o7dmzc51#

1) 新的adapterview.onitemclicklistener是一个匿名的内部类。它可以使用周围类中的字段
2) 参数必须定义为“final”变量。

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

    ListView lv = (ListView)findViewById(R.id.listView);

    String final parameter = "123"; //<--

    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            item = parent.getItemAtPosition(position).toString(); //<--
            // TODO1
            System.out.println(parameter)
        }

}
// TODO2

private String item = null;

public String getLastClickedItem(){
    return item;
}

相关问题