Android 如何链接一个类';对于其他类来说,如MainActivity.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

我有两个类代码,一个是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);
}
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;
}
}

启动屏幕不再工作,它说不幸停止=(