ListView - 适配器和按钮之间的引用

时间:2015-12-09 11:50:58

标签: java listview

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 替换了这个,但无论如何它仍然有用。显然它是关于适配器视图和按钮之间的参考。 我能做什么?谢谢!

1 个答案:

答案 0 :(得分:0)

请从按钮

onClick 中删除此行
final ArrayAdapter adapter = new ArrayAdapter<String>(getApplication(),
            R.layout.activity_listview, treffer);

因为在这里你正在创建新的适配器,但不再使用它了。