ListView显示分层有组织的数据。例如,ListView显示大陆。点击ListView的Europe-item后,我们会看到欧洲国家。点击德国后,我们在ListView中看到了德国的联邦州。
该项目也包含一个按钮。这个按钮应该更高。例如:如果ListView显示德国的联邦州,则单击按钮会在列表视图中生成欧洲国家的视图。 我的项目中的ListView工作。但不是按钮。点击后没有任何反应。
相关守则:
public class MainActivity extends AppCompatActivity {
…
//This Code within the setOnClickListener doesn‘t run:
b1.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
final ArrayAdapter adapter = new ArrayAdapter<String>(getApplication(),
R.layout.activity_listview, treffer);
adapter.clear();
adapter.notifyDataSetChanged();
FatherSearch(father);
}
更多MainActivity代码。它运行:
final ArrayAdapter adapter = new ArrayAdapter<String>(this,
R.layout.activity_listview, treffer);
InformationFetch("v0id0");
ListView listView = (ListView) findViewById(R.id.mobile_list);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
String information = (String) adapterView.getItemAtPosition(position);
father = information;
int iPosition = information.indexOf(' ');
String id2 = information.substring(0,iPosition);
adapter.clear();
adapter.notifyDataSetChanged();
InformationFetch(id2);
}
问题在我的观点中依次存在:
final ArrayAdapter adapter = new
ArrayAdapter<String>(getApplication(), R.layout.activity_listview,
treffer);
我已经用 getApplication 替换了这个,但无论如何它仍然有用。显然它是关于适配器视图和按钮之间的参考。 我能做什么?谢谢!
答案 0 :(得分:0)
请从按钮
的 onClick 中删除此行final ArrayAdapter adapter = new ArrayAdapter<String>(getApplication(),
R.layout.activity_listview, treffer);
因为在这里你正在创建新的适配器,但不再使用它了。