Android 如何链接一个类';对于其他类来说,如MainActivity.java
我有两个类代码,一个是ToDoList.java,一个是MainActivity.java,在我的ToDoList.java中,代码如下:Android 如何链接一个类';对于其他类来说,如MainActivity.java,android,eclipse,Android,Eclipse,我有两个类代码,一个是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 bu
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);
}
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;
}
}
}
红线在arrayAdapterToDo下面,我知道这是因为arrayAdapterToDo没有找到正确的位置。在my MainActivity.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);
}
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;
}
}
package com.example.splashscreen;
导入java.util.ArrayList;
导入android.os.Bundle;
导入android.app.Activity;
导入android.view.Menu;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
公共类MainActivity扩展了活动{
私有ArrayList arrayListToDo;
私人ArrayAdapter arrayAdapterToDo;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
arrayListToDo=新的ArrayList();
arrayAdapterToDo=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,arrayListToDo);
ListView listViewToDo=(ListView)findViewById(R.id.listViewToDo);
setAdapter(arrayAdapterToDo);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
}
黄色的excalmatory标记显示在ToDoList.java页面上,如何修复它?您可以通过执行以下步骤从其他活动中添加数据 创建一个新的java类并将其命名为
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;
}
}
将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);
ListView listViewToDo = (ListView) findViewById(R.id.listViewToDo);
listViewToDo.setAdapter(GenericAdapter.getInstance(this).getAdapter());
}
@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;
}
}
package com.example.splashscreen;
导入java.util.ArrayList;
导入android.os.Bundle;
导入android.app.Activity;
导入android.view.Menu;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
公共类MainActivity扩展了活动{
私有ArrayList arrayListToDo;
私人ArrayAdapter arrayAdapterToDo;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView listViewToDo=(ListView)findViewById(R.id.listViewToDo);
setAdapter(GenericAdapter.getInstance(this.getAdapter());
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
}
启动屏幕不再工作,它说不幸停止=(