我有两个类代码,一个是ToDoList.java,一个是MainActivity.java,在我的ToDoList.java中代码是这样的:
package com.example.splashscreen;
import android.app.Activity;
import android.view.View;
import android.widget.EditText;
public class ToDoList extends Activity {
public void buttonAddClick(View v){
String toDo = ((EditText)findViewById(R.id.editTextToDo)).getText().toString().trim();
if(toDo.isEmpty()){
return;
}
arrayAdapterToDo.add(toDo);
}
}
红线在arrayAdapterToDo下,我知道是因为这个arrayAdapterToDo找不到合适的位置。在我的MainActivity.java中,代码是这样的:
package com.example.splashscreen;
import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
private ArrayList<String> arrayListToDo;
private ArrayAdapter<String> arrayAdapterToDo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
arrayListToDo = new ArrayList<String>();
arrayAdapterToDo = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,arrayListToDo);
ListView listViewToDo = (ListView) findViewById(R.id.listViewToDo);
listViewToDo.setAdapter(arrayAdapterToDo);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
黄色的感叹号显示在ToDoList.java页面上,如何解决?
答案 0 :(得分:0)
您可以通过执行此步骤从其他活动添加数据。
创建一个新的java类并将其命名为com.example.apple-samplecode
GenericAdapter.java
将import android.content.Context;
import android.widget.ArrayAdapter;
import java.util.ArrayList;
/**
* Created by dragon on 7/6/2015.
*/
public class GenericAdapter {
private ArrayAdapter<String> adapter;
private ArrayList<String> arrayListToDo;
private static GenericAdapter adapt;
private GenericAdapter(Context context) {
arrayListToDo = new ArrayList<String>();
adapter = new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1, arrayListToDo);
}
public static GenericAdapter getInstance(Context context) {
if (adapt == null) {
adapt = new GenericAdapter(context);
}
return adapt;
}
public void add(String s) {
arrayListToDo.add(s);
adapter.notifyDataSetChanged();
}
public ArrayAdapter<String> getAdapter() {
return adapter;
}
}
更改为
ToDoList.java
将 package com.example.splashscreen;
import android.app.Activity;
import android.view.View;
import android.widget.EditText;
public class ToDoList extends Activity {
public void buttonAddClick(View v){
String toDo =((EditText)findViewById(R.id.editTextToDo)).getText().toString().trim();
if(toDo.isEmpty()){
return;
}
GenericAdapter.getInstance(this).add(toDo);
}
}
更改为
MainActivity.java