我遇到的问题是我的列表绝对拒绝呈现。
这是我的第一个活动,它有一个按钮,指向应该呈现列表的活动。有一个后续的xml,它将onClick方法绑定到openHistory方法。
public class MenuActivity extends AppCompatActivity{
private static final String FILE_NAME = "books.txt";
public static BookList bookList = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu_activity);
bookList = new BookList(FILE_NAME, this);
}
@Override
protected void onStart(){
super.onStart();
}
@Override
protected void onResume(){
super.onResume();
setContentView(R.layout.menu_activity);
}
@Override
protected void onPause(){
super.onPause();
}
@Override
protected void onStop(){
super.onStop();
}
@Override
protected void onDestroy(){
super.onDestroy();
bookList.writeToFile(this);
this.finish();
}
@Override
protected void onRestart() {
super.onRestart();
setContentView(R.layout.menu_activity);
}
public void openHistory(View v){
Intent histIntent = new Intent(this, HistoryActivity.class);
this.startActivity(histIntent);
}
}
这是应该呈现列表的活动。
public class HistoryActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.history_activity);
ListView history = (ListView)findViewById(R.id.list);
ArrayList<String> temp = new ArrayList<>();
temp.add("dog");
temp.add("cat");
temp.add("fish");
temp.add("dog");
temp.add("cat");
temp.add("fish");
temp.add("dog");
temp.add("cat");
temp.add("fish");
temp.add("dog");
temp.add("cat");
temp.add("fish");
temp.add("dog");
temp.add("cat");
temp.add("fish");
temp.add("dog");
temp.add("cat");
temp.add("fish");
temp.add("dog");
temp.add("cat");
temp.add("fish");
ArrayAdapter historyAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, temp);
history.setAdapter(historyAdapter);
}
@Override
protected void onStart(){
super.onStart();
}
@Override
protected void onResume(){
super.onResume();
setContentView(R.layout.history_activity);
}
@Override
protected void onPause(){
super.onPause();
}
@Override
protected void onStop(){
super.onStop();
}
@Override
protected void onDestroy(){
super.onDestroy();
this.finish();
}
@Override
protected void onRestart() {
super.onRestart();
}
}
我尝试搜索其他几个帖子(甚至其他网站)。我的代码至少在语法上是正确的,但我根本找不到错误。
任何和所有帮助将不胜感激!
答案 0 :(得分:1)
首先,您的代码存在很多问题。你是不必要的重复功能和
1)不添加功能
@Override
protected void onStop(){
super.onStop();
}
2)在onResume中设置视图。 onCreate就够了
3)重置视图。见第3点
4)调用this.finish();在onDestroy ...为什么?
你应该先修复这个
答案 1 :(得分:0)
您的ListView
未显示任何内容,因为您在history_activity.xml
方法中重新夸大了onResume
,该方法仅覆盖了onCreate
中之前的夸大视图。这是因为在onResume
之后调用onCreate
。只需从setContentView(R.layout.history_activity);
中删除onResume
即可,一切都会正常运行。