gpt4 book ai didi

从另一个 Activity 返回时,android setOnItemClickListener 不响应

转载 作者:行者123 更新时间:2023-11-30 03:57:38 24 4
gpt4 key购买 nike

我的 Activity 中有一个 ListView 。我第一次单击 listview 项目时,它工作正常。当我按下后退按钮并返回此 Activity 时,我无法再点击该项目。此 ListView 适用于 android2。当我用 android 4 测试时,发生了这个问题。

我发现了这种问题here ,我已经尝试了所有“descendentFocusabilty”的东西,但还没有解决。我知道我不应该发布几乎相同的问题。但我在那里找不到任何有效的答案。

请帮我解决这个问题。

这是我的 child1 Activity

public class TabChild1 extends NavigationActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tabchild1);

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);

adapter.add("red");
adapter.add("green");
adapter.add("blue");
ListView listView = (ListView) findViewById(R.id.listview);

listView.setAdapter(adapter);

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
ListView listView = (ListView) parent;
String item = (String) listView.getItemAtPosition(position);
Intent intent = new Intent(TabChild1.this, TabChild2.class);
int iNum = position;
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
goNextHistory("TabChild2", intent);
}
});

}

@Override
public void onBackPressed() {
super.onBackPressed();
}

这是我的 NavigationActivity

public class NavigationActivity extends Activity {
public void goNextHistory(String id, Intent intent) {
NavigationGroupActivity parent = ((NavigationGroupActivity) getParent());
View view = parent.group.getLocalActivityManager()
.startActivity(id,intent)
.getDecorView();
parent.group.replaceView(view);
}

@Override
public void onBackPressed() {
NavigationGroupActivity parent = ((NavigationGroupActivity) getParent());
parent.back();
}

这是我的 NavigationGroupActivity

公共(public)类 NavigationGroupActivity 扩展 ActivityGroup {

ArrayList<View> history; 
NavigationGroupActivity group;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
history = new ArrayList<View>();
group = this;
}

public void changeView(View v) {
history.remove(history.size() - 1);
history.add(v);
setContentView(v);
}

public void replaceView(View v) {
history.add(v);
setContentView(v);
}

public void back() {
if(history.size() > 1) {
history.remove(history.size() - 1);
setContentView(history.get(history.size() - 1));
} else {
finish();
}
}

@Override
public void onBackPressed() {
group.back();
return;
}

和我的child1布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

最佳答案

我认为您必须在类 T​​abChild1 的 onBackPressed() 方法中使用 finish()。并注释 NavigationActivity 类的 onBackPressed() 方法内的 parent.back() 行。 我认为这对你有用。

关于从另一个 Activity 返回时,android setOnItemClickListener 不响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13107467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com