[英]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.