有人可以看看我在做什么错吗?在方法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
答案 0 :(得分:0)
您的代码将首先执行而不执行onItemClick(),java会侦听此事件,并且仅在单击该项目时才会执行。因此,首先执行带有“ Selected2”的日志,并打印null,因为尚未分配任何值。并且onItemClick()仅在单击该项目时执行。在Java通过“ Selected2”登录日志之后,很可能会单击。因此,当您单击该项目时,它会分配一个值,并使用onItemClick()内的Log打印该值