在另一个活动的一个活动中编辑微调器

时间:2015-04-09 11:43:08

标签: android-activity android-spinner

我创建了Activity5来管理其他活动的值......

在Activity3中我有一个微调器......

Spinner spinner1;
ArrayList<String> SAlist;
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main_activity3);
  getActionBar().setDisplayHomeAsUpEnabled(true);

  Intent intent = getIntent();
  ArrayList<String> SAList =  intent.getStringArrayListExtra("StringArrayList");


  spinner1=(Spinner) findViewById(R.id.spinner1);

  ArrayAdapter<String> adp=new ArrayAdapter<String>(this, 
            android.R.layout.simple_dropdown_item_1line,SAList);
    spinner1.setAdapter(adp);      


}

我认为如果我在activity5中构建新的微调器(用于向用户显示)并编辑它,然后将此微调器的数组列表传递给activity3,这是可能的......

Activity5:

Spinner sp;
EditText et;
ArrayList<String> li;

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main_activity5);
  getActionBar().setDisplayHomeAsUpEnabled(true);

  li=new ArrayList<String>();
  li.add("first item");
  sp=(Spinner) findViewById(R.id.spinner1);
  Button butt=(Button) findViewById(R.id.button1);
  Button butt1=(Button) findViewById(R.id.button2);
  et=(EditText)findViewById(R.id.editText1);
  add();

  butt.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
        li.add(et.getText().toString());
        et.setText(null);
        add();
        }
});

  butt1.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
      Intent intent = new Intent(MainActivity5.this, MainActivity3.class);
      intent.putStringArrayListExtra("StringArrayList", li);
      startActivity(intent);
        }
    });


}
private void add() {

        ArrayAdapter<String> adp=new ArrayAdapter<String>(this, 
                android.R.layout.simple_dropdown_item_1line,li);
        sp.setAdapter(adp);
           }

但是当我启动应用程序并打开activity3时,它显示“不幸的是app已经停止”!!! 帮我PLZ!

1 个答案:

答案 0 :(得分:1)

当您从主菜单打开activity3时,在该事件中您获得SAList null, 尝试这样做,当SAList为null时,它将显示空的微调器。

Intent intent = getIntent();
    if(intent.getStringArrayListExtra("StringArrayList")!=null)
    {
        ArrayList<String> SAList =  intent.getStringArrayListExtra("StringArrayList");
    }else
    {
        ArrayList<String> SAList=new ArrayList<String>();
    }