簡體   English   中英

沒有空構造函數:android類

[英]No empty constructor: android class

我的問題是,我在活動之間傳輸兩個數組。 從一個活動返回到另一個活動。 我在那里通過構造函數得到這兩個活動(我想)。 這個對嗎? 為什么我收到錯誤:沒有空構造函數?

以下是Activites來自的課程:

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);
            }
        });
    }

您無法使用new創建Android Activity的實例 - 它根本不起作用。

創建Activity的唯一方法是從Apps啟動器啟動時,或者調用startActivity(...) (或其他方法之一,如startActivityForResult(...)等)。

因此,您不應該為Activity創建構造函數,並且您永遠不應創建public static字段或方法,以便從任何其他應用程序類訪問數據或調用Activity方法。

如果要將數據從一個Activity傳遞到另一個Activity ,請使用Intent的extras或僅將數據保存在SharedPreferences或數據庫中。 或者創建一個'helper'類來保存數據 - 使用Singleton模式很常見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM