listview onClickListerner java中的全局变量

时间:2018-06-22 16:04:09

标签: java listview global-variables onclicklistener

有人可以看看我在做什么错吗?在方法listView onClickListener外部声明了全局变量,并尝试在方法内部为该变量分配一个值。变量日志返回值在方法内部,但在null外部。

public static String selected;

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {     
    selected = ((TextView) view.findViewById(R.id.textviewid)).getText().toString();
    Toast.makeText(getApplicationContext(), selected, Toast.LENGTH_SHORT).show();
    Log.i("Selected", "Value: "+selected);
}
});

Log.i("Selected2", "Value: "+selected);

日志显示:

06-22 11:58:16.597 10063-10063/com.example.app I/Selected2: Value: null
06-22 11:58:28.487 10063-10063/com.example.app I/Selected: Value: Value1

1 个答案:

答案 0 :(得分:0)

您的代码将首先执行而不执行onItemClick(),java会侦听此事件,并且仅在单击该项目时才会执行。因此,首先执行带有“ Selected2”的日志,并打印null,因为尚未分配任何值。并且onItemClick()仅在单击该项目时执行。在Java通过“ Selected2”登录日志之后,很可能会单击。因此,当您单击该项目时,它会分配一个值,并使用onItemClick()内的Log打印该值