从onClick event / onClick事件行为中获取数据

时间:2015-01-15 05:24:48

标签: java events click listener onitemclick

我已经编写了一段时间,但我从未参加任何课程,所以我对一些事情的工作方式有一些疑问。其中一个是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中有一些事情要做并需要'参数'变量,有没有办法将它传递给onItemClick方法?

谢谢!

1 个答案:

答案 0 :(得分:1)

1)新的AdapterView.OnItemClickListener是一个匿名的内部类。它可以使用周围类

中的字段

2)参数必须定义为&#34; final&#34;变量

@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;
}
相关问题