与构造函数的活动

时间:2015-05-09 21:22:27

标签: android

使用构造函数启动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

这是文件清单中声明的​​问题可能!!! 提前谢谢你

1 个答案:

答案 0 :(得分:1)

您无法在Android中手动实例化活动,因此请勿使用构造函数在活动之间传递数据。

关于如何在活动之间正确传递对象列表,请参阅this thread