我的问题是,我在活动之间传输两个数组。从一个活动返回到另一个活动。我在那里通过构造函数得到这两个活动(我想)。它是否正确?为什么我收到错误:没有空构造函数?
以下是我的课程,活动来自:
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);
}
});
}
答案 0 :(得分:2)
您无法使用Activity
创建Android new
的实例 - 它根本无法正常工作。
创建Activity
的唯一方法是从Apps启动器启动时,或者调用startActivity(...)
(或startActivityForResult(...)
等其他方法之一)。
因此,您不应该为Activity
创建构造函数,并且您永远不应创建public static
字段或方法,以便在{{1}中访问数据或调用方法来自任何其他应用程序类。
如果要将数据从一个Activity
传递到另一个Activity
,请使用Intent
中的附加内容,或者只是将数据保存在SharedPreferences
或数据库中。或者创建一个帮助者&#39;用于保存数据的类 - 使用Singleton模式非常常见。