使用Spinner更改布局

时间:2015-07-11 19:13:42

标签: android

使用下面的代码我想简单地在微调器值选择时更改布局。但是,当我的活动加载时,微调器从不加载要选择的值。

当我删除代码(及其下面的所有内容)时,奇怪的是

spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

微调器值再次出现。

public class ListCarsActivity extends Activity implements  OnItemClickListener, OnClickListener, OnItemSelectedListener {

public static final String TAG = "ListCarsActivity";
Spinner spinner;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.list_cars);

    spinner = (Spinner) findViewById(R.id.spinner3);
    ArrayAdapter adapter= ArrayAdapter.createFromResource(this,R.array.domain,android.R.layout.simple_spinner_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(this);
    // initialize views
    initViews();

    }

    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onItemSelected(AdapterView<?> arg0, View view,
                                   int position, long row_id) {

            switch(position){
                case 1:
                    setContentView(R.layout.list_cars);
                    break;
                case 2:
                    setContentView(R.layout.list_owners);
                    break;
            }
            setContentView(R.layout.list_cars);

        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }

    });

1 个答案:

答案 0 :(得分:0)

您指的微调器是您的第一个活动。更换内容后,微调器不再存在。如果在第二个布局中有另一个微调器,则必须重新连接它并再次设置监听器。基本上你必须在每个setContentView后运行你的onCreate ...

作为旁注,无论你想做什么,这可能都不是你要走的路。要显示另一个完整布局,请更好地使用其他活动。