Java ListView-适配器和按钮之间的引用
列表视图显示分层组织的数据。例如,ListView显示大陆。点击ListView的欧洲项目后,我们可以看到欧洲国家。点击德国后,我们可以在列表视图中看到德国联邦各州 该项目还包含一个按钮。这个按钮应该再高一点。例如:如果ListView显示德国的联邦州,则单击按钮可在ListView中生成欧洲国家的视图。 我的项目中的ListView正常工作。但不是按钮。单击后不会发生任何事情 有关守则:Java ListView-适配器和按钮之间的引用,java,listview,Java,Listview,列表视图显示分层组织的数据。例如,ListView显示大陆。点击ListView的欧洲项目后,我们可以看到欧洲国家。点击德国后,我们可以在列表视图中看到德国联邦各州 该项目还包含一个按钮。这个按钮应该再高一点。例如:如果ListView显示德国的联邦州,则单击按钮可在ListView中生成欧洲国家的视图。 我的项目中的ListView正常工作。但不是按钮。单击后不会发生任何事情 有关守则: public class MainActivity extends AppCompatActivity {
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);
}
public类MainActivity扩展了AppCompatActivity{
…
//setOnClickListener中的此代码未运行:
b1.setOnClickListener(新视图.OnClickListener(){
@覆盖公共void onClick(视图v){
最终ArrayAdapter=新的ArrayAdapter(getApplication(),
R.layout.activity_列表视图,treffer);
适配器。清除();
adapter.notifyDataSetChanged();
父亲研究(父亲);
}
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=新的ArrayAdapter(此,
R.layout.activity_列表视图,treffer);
InformationFetch(“v0id0”);
ListView ListView=(ListView)findViewById(R.id.mobile\u列表);
setAdapter(适配器);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView AdapterView,视图视图,整型位置,长id){
字符串信息=(字符串)adapterView.getItemAtPosition(位置);
父亲=信息;
int iPosition=information.indexOf(“”);
字符串id2=信息。子字符串(0,i位置);
适配器。清除();
adapter.notifyDataSetChanged();
信息提取(id2);
}
我认为问题的顺序如下:
final ArrayAdapter adapter = new
ArrayAdapter<String>(getApplication(), R.layout.activity_listview,
treffer);
最终阵列适配器=新
ArrayAdapter(getApplication(),R.layout.activity_listview,
特雷弗);
我已经用getApplication替换了这个,但它仍然可以工作。显然,它是关于适配器视图和按钮之间的引用。
我能做什么?谢谢!请在单击按钮的时将此行删除
final ArrayAdapter adapter = new ArrayAdapter<String>(getApplication(),
R.layout.activity_listview, treffer);
final ArrayAdapter adapter=new ArrayAdapter(getApplication(),
R.layout.activity_列表视图,treffer);
因为这里您正在创建新的适配器,但不再使用它