Android 变量fd是从内部类Error中访问的
我正在创建简单的listview。所有项目都将成功列出。但是 Toast不起作用。此代码链接是我得到的错误。Toast.maketexthis,你好,fd.getposition,Toast.LENGTH\u LONG.show 完整代码Android 变量fd是从内部类Error中访问的,android,Android,我正在创建简单的listview。所有项目都将成功列出。但是 Toast不起作用。此代码链接是我得到的错误。Toast.maketexthis,你好,fd.getposition,Toast.LENGTH\u LONG.show 完整代码 首先,您必须使fd可以从侦听器内部访问。这可以通过全局声明df或使df为final来实现 第二,你不能在监听器内部使用它,因为这只是替换行 Toast.makeText(this,"hello",fd.get(position),Toast.LENGTH_LO
首先,您必须使fd可以从侦听器内部访问。这可以通过全局声明df或使df为final来实现 第二,你不能在监听器内部使用它,因为这只是替换行
Toast.makeText(this,"hello",fd.get(position),Toast.LENGTH_LONG).show();
为此:
Toast.makeText(MainActivity.this,"hello",fd.get(position),Toast.LENGTH_LONG).show();
并将MainActivity替换为活动的名称
Toast.makeText(this,"hello"+fd.get(position),Toast.LENGTH_LONG).show();
试试这个代码
public class MainActivity extends AppCompatActivity {
ListView list;
private ArrayList<String> fd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list = findViewById(R.id.List);
fd = new ArrayList<String>();
fd.add("roda");
fd.add("ghh");
fd.add("asfff");
fd.add("jll");
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,R.layout.support_simple_spinner_dropdown_item,fd);
list.setAdapter(arrayAdapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{ Toast.makeText(MainActivity.this,"hello"+fd.get(position),Toast.LENGTH_LONG).show();
}
});
}
}
在类级别声明ArrayList对象
ListView list;
ArrayList<String> fd;
更改代码以显示toast消息,如下所示
Toast.makeText(MainActivity.this,"hello "+fd.get(position),Toast.LENGTH_LONG).show();
通过oncreate方法初始化列表我添加了另一个答案。试试那个。
fd = new ArrayList<String>();
Toast.makeText(MainActivity.this,"hello "+fd.get(position),Toast.LENGTH_LONG).show();