2017-06-11 43 views
0

我希望使用程序代碼設置微調器項目,而不是在xml佈局中使用android:條目。 但我沒有這樣做。 我想根據條件設置微調項目,所以不能使用靜態的xml來設置它,所以善意地幫助我動態設置。 下面的代碼: 公共類轉換器擴展AppCompatActivity {如何以編程方式填充微調器選項(不使用xml)

EditText et2; 
TextView tv; 
Spinner spr2,spr3; 
ArrayAdapter adap2,adap3; 
String []spr_2; 
String []spr_3; 
Button btn2; 
String s1; 


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

    et2=(EditText) findViewById(R.id.et2); 
    tv=(TextView) findViewById(R.id.tv); 
    spr2=(Spinner) findViewById(R.id.spr2); 
    spr3=(Spinner) findViewById(R.id.spr3); 
    btn2=(Button) findViewById(R.id.btn2); 

    Bundle b=getIntent().getExtras(); 
    et2.setText(b.getString("Value1")); 
    s1=b.getString("SpinnerValue"); 
    adap2=adap3=new ArrayAdapter(this,android.R.layout.simple_dropdown_item_1line); 

    if(s1 == "height") { 
     spr_2 = spr_3 = getResources().getStringArray(R.array.height); 
     adap2 = new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, spr_2); 
     adap3 = new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, spr_3); 
     spr2.setAdapter(adap2); 
     spr3.setAdapter(adap3); 
    } 
    if(s1 == "weight") { 
     spr_2 = spr_3 = getResources().getStringArray(R.array.weight); 
     adap2 = new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, spr_2); 
     adap3 = new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, spr_3); 
     spr2.setAdapter(adap2); 
     spr3.setAdapter(adap3); 
    } 
    if(s1 == "distance") { 
     spr_2 = spr_3 = getResources().getStringArray(R.array.distance); 
     adap2 = new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, spr_2); 
     adap3 = new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, spr_3); 
     spr2.setAdapter(adap2); 
     spr3.setAdapter(adap3); 
    } 
    if(s1 == "currency") { 
     spr_2 = spr_3 = getResources().getStringArray(R.array.height); 
     adap2 = new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, spr_2); 
     adap3 = new ArrayAdapter(this, android.R.layout.simple_dropdown_item_1line, spr_3); 
     spr2.setAdapter(adap2); 
     spr3.setAdapter(adap3); 
    } 






} 

}

+0

的可能的複製[安卓:填寫微調從Java代碼編程(https://stackoverflow.com/questions/11920754/android-fill-spinner-from-java-代碼編程) –

+0

但我已經做了適配器,但沒有做出更改。我確實嘗試了上述問題的答案。 –

回答

0

貌似代碼,如果塊不被調用。你不應該像這樣檢查對象是否平等。運算符'=='檢查標識,而不是相等。不是s1 == s2,而是s1.equals(s2),甚至更好Objects.equals(s1,s2)。 您的代碼應該是這樣的:

String[] items; 
if ("height".equals(s)) 
    items = getResources().getStringArray(R.array.height); 
else if ("width".equals(s)) 
    items = getResources().getStringArray(R.array.width); 
.... 
else 
    items = getResources().getStringArray(R.array.width); //just for example 

spinner.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, items)); 
相關問題