簡體   English   中英

Android微調器更改setContentView

[英]Android spinner to change setContentView

因此,到目前為止,我有一個帶有兩個不同選項的微調器。 我要完成的工作是,如果選擇了“ First Spinner Option”,則將ContentView設置為特定的布局並執行與該布局相對應的代碼。 如果選擇“第二種微調選項”,情況也是如此。 我知道我需要在一定程度上使用setOnItemSelectedListener,但是我不確定這將如何正常工作。 以下是我要在編碼術語中嘗試做的快速模擬

spinner.setonItemSelectedListener(this);
    if(spinner = first spinner option){
         setContentView(R.layout.lay1);
         //other code here
    }elseif(spinner = second spinner option){
         setContentView(R.layout.lay2);
         //other code here
    }

我知道這里的語法不好,我只是想對如何做到這一點有一個大致的了解。

編輯:@CodeMagic這是到目前為止我的代碼設置方式。 “項目”只是一個包含2個元素的字符串數組。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            R.layout.my_spinner_style, items) {

            public View getView(int position, View convertView, ViewGroup parent) {
                View v = super.getView(position, convertView, parent);
                Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/Exo-Bold.otf");
                ((TextView) v).setTypeface(tf);
                return v;
            }


            public View getDropDownView(int position,  View convertView,  ViewGroup parent) {
                View v =super.getDropDownView(position, convertView, parent);
                Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/Exo-Bold.otf");
                ((TextView) v).setTypeface(tf);
                //v.setBackgroundColor(Color.GREEN);

                return v;
            }
    };


    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);                                 
    gasChoice.setAdapter(adapter);  

    addListenerOnSpinnerItemSelection();
}

public void addListenerOnSpinnerItemSelection(){
    gasChoice = (Spinner) findViewById(R.id.gasChoice);
    gasChoice.setOnItemSelectedListener(new OnItemSelected());

}

我不確切知道您遇到的問題是什么,但是問題很嚴重。 您只需要添加方法

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
     TextView tv = (TextView)arg1;  // get the TextView selected
     String text = tv.getText().toString();
     if(text.equals("FirstText")){   // compare the text in the box
          setContentView(R.layout.lay1);
     //other code here
     }elseif(text.equals("FirstText")){
          setContentView(R.layout.lay2);
         //other code here
     }
}

有不同的方法來執行此操作,例如獲取位置( arg2 )並將其與適配器中的位置進行比較,但是由於我不知道您的操作方式,因此這是最簡單的入門方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM