使用构造函数启动My Activity时遇到问题 我想传递一个对象数组而不使用首选项,唯一的解决方案是使用构造函数
public class ApresConnextionActivity extends Activity {
public Bts[] listeBts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.apresconnect);
final Button btsButton = (Button) findViewById(R.id.btbts);
//boutonbts
btsButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.w("myApp",""+listeBts.length);
BtsBoutonActivity btba = new BtsBoutonActivity(listeBts);
Intent i = new Intent(getApplicationContext(), btba.getClass());
startActivity(i);
}
});
new JSONParseBts().execute();
}
public class JSONParseBts extends AsyncTask<String, String, JSONObject> { ... }
}
public class BtsBoutonActivity extends Activity {
Bts[] listeBts;
cellule[] listecellule;
int i,xx=0;
public BtsBoutonActivity(Bts[] listeBts2) {
this.listeBts=listeBts2;
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.btsbouton);
//Log.w("myApp",""+listeBts.length);
final Button[] b = new Button[listeBts.length];
LinearLayout ll3 = (LinearLayout)findViewById(R.id.linearLayout2); // Btn
for(i = 0; i < listeBts.length; i++){
//Log.w("myApp",listeBts[i].toString());
b[i] = new Button(BtsBoutonActivity.this);
b[i].setText(listeBts[i].getNombts());
xx =listeBts[i].getIdbts();
Log.w("myApp",""+xx);
b[i].setId(xx);
ll3.addView(b[i]);
final Button btbts = (Button) findViewById(xx);
btbts.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast saved_message=Toast.makeText(BtsBoutonActivity.this,btbts.getText()+" "+btbts.getId(),1);
saved_message.show();
}});
}
}
}
05-09 20:14:31.121: E/AndroidRuntime(596): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{pfe.essat.com/pfe.essat.com.BtsBoutonActivity}: java.lang.InstantiationException: can't instantiate class pfe.essat.com.BtsBoutonActivity; no empty constructor
这是文件清单中声明的问题可能!!! 提前谢谢你