没有空构造函数:android类

时间:2014-04-19 20:52:05

标签: java android constructor

我的问题是,我在活动之间传输两个数组。从一个活动返回到另一个活动。我在那里通过构造函数得到这两个活动(我想)。它是否正确?为什么我收到错误:没有空构造函数?

以下是我的课程,活动来自:

public PlanOutputActivity fetchallRoutes(String startStop, String endStop, String time) {
.
.
.
return new PlanOutputActivity(convertArray(),routenArray);

这是我的活动,我想获得这两个阵列:

public class PlanOutputActivity extends Activity {

    Intent intent;
    Object[][] routenArray;
    String[][] itemsArray;
    DatabaseHelperActivity mdbH;
    public int RESULT_OK = 123;
    public int REQUEST_OK = 456;

    public PlanOutputActivity(String[][] itemsArray, String[][] routenArray){
        setContentView(R.layout.planoutputlayout);
        this.routenArray = routenArray;
        this.itemsArray = itemsArray;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated constructor stub
        super.onCreate(savedInstanceState);
     }
     public void getRoute() {

        intent = getIntent();
        mdbH = new DatabaseHelperActivity(this);
        mdbH.fetchallRoutes(intent.getStringExtra("StartHaltestelle"),intent.getStringExtra("ZielHaltestelle"),intent.getStringExtra("Zeit"));
      ListView lvList = (ListView)findViewById(R.id.ListOutput);
        ArrayAdapter<DefineRouteActivity> adapter = new RouteAdapterActivity(this, route);
        lvList.setAdapter(adapter);

        lvList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                int gKennung = view.getId();
                Intent intent = new Intent(getApplicationContext(),DetailOutputActivity.class);
                intent.putExtra("Kennung",gKennung);
                intent.putExtra("routenArray",routenArray);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);
            }
        });
    }

1 个答案:

答案 0 :(得分:2)

您无法使用Activity创建Android new的实例 - 它根本无法正常工作。

创建Activity的唯一方法是从Apps启动器启动时,或者调用startActivity(...)(或startActivityForResult(...)等其他方法之一)。

因此,您不应该为Activity创建构造函数,并且您永远不应创建public static字段或方法,以便在{{1}中访问数据或调用方法来自任何其他应用程序类。

如果要将数据从一个Activity传递到另一个Activity,请使用Intent中的附加内容,或者只是将数据保存在SharedPreferences或数据库中。或者创建一个帮助者&#39;用于保存数据的类 - 使用Singleton模式非常常见。