2013-01-19 1 views
0

문제가되는 것 ... 내 프로그램에서 switch 문을 입력 할 수 없습니다. 나는 unita에 위치를 지정했고 switch 문에서 사용할 때 응답하지 않습니다. 그러나 switch 문 외부에 코드를 넣으려고하면 프로그램이 정상적으로 응답합니다.안드로이드에서 조건문에 Spinner를 사용할 수 없습니다.

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

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, list); 
    category = (Spinner) findViewById(R.id.categoryList); 
    category.setAdapter(adapter); 
    category.setOnItemSelectedListener(this); 

} 

@Override 
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, 
     long arg3) 
{ 
    // TODO Auto-generated method stub 
    int position = category.getSelectedItemPosition(); 

    switch(position) 
    { 
     case 0: 
     { 
      //Length         
      Length(); 
     } 
      break; 
     case 1: 
     { 
      //Weight 
      Weight(); 
     } 
      break; 
     case 2: 
      //Time 
      Time(); 
      break; 
     case 3: 
      //IT 
      IT(); 
      break; 
     case 4: 
      //Area 
      Area(); 
      break; 
     case 5: 
      //Volume 
      Volume(); 
      break; 
     case 6: 
      //Perimeter 
      Perimeter(); 
      break; 
    }    

} 
public void Length() 
{ 
    ArrayAdapter<String> lengthadapt = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, length); 
    ArrayAdapter<String> lengthadapt2 = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_item, length); 

    unit1 = (Spinner) findViewById(R.id.unit1); 
    int unita = unit1.getSelectedItemPosition(); 
    unit1.setAdapter(lengthadapt); 
    unit1.setSelection(unita); 
    unit2 = (Spinner) findViewById(R.id.unit2); 
    int unitb = unit2.getSelectedItemPosition(); 
    unit2.setAdapter(lengthadapt2); 
    unit2.setSelection(unitb); 
    b1=(ImageButton) findViewById(R.id.convert1);  

    int con=unita; 

switch(con) 
{ 
case 0:   
{ b1=(ImageButton) findViewById(R.id.convert1); 
    b1.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) {   
      t1=(EditText) findViewById(R.id.input1); 
      t2=(EditText) findViewById(R.id.input2); 
      Double res; 
      String txt; 
      int num1=Integer.parseInt(t1.getText().toString()); 
      res=(double)num1*1000; 
      System.out.println(res); 
      t2.setText(res.toString()); 
     }}); 
    break; 
} 
case 1: 
    {b1=(ImageButton) findViewById(R.id.convert1); 
     b1.setOnClickListener(new OnClickListener() { 
       public void onClick(View v) {   
        t1=(EditText) findViewById(R.id.input1); 
        t2=(EditText) findViewById(R.id.input2); 
        Double res; 
        String txt; 
        int num1=Integer.parseInt(t1.getText().toString()); 
        res=(double)num1*1000; 
        System.out.println(res); 
        txt=res.toString(); 
        t2.setText(txt); 

        }}); 
     break; 
    } 
case 2:{ 
    b1=(ImageButton) findViewById(R.id.convert1); 
    b1.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) {   
       t1=(EditText) findViewById(R.id.input1); 
       t2=(EditText) findViewById(R.id.input2); 
       Double res; 
       String txt; 
       int num1=Integer.parseInt(t1.getText().toString()); 
       res=(double)num1*.01; 
       System.out.println(res); 
       txt=res.toString(); 
       t2.setText(txt); 

       }}); 
    break; 
} 
case 3: 
{ 
    b1=(ImageButton) findViewById(R.id.convert1); 
    b1.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) {   
       t1=(EditText) findViewById(R.id.input1); 
       t2=(EditText) findViewById(R.id.input2); 
       Double res; 
       String txt; 
       int num1=Integer.parseInt(t1.getText().toString()); 
       res=(double)num1*.001; 
       System.out.println(res); 
       txt=res.toString(); 
       t2.setText(txt); 

       }}); 
    break; 
} 
case 4:{ 
    b1=(ImageButton) findViewById(R.id.convert1); 
    b1.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) {   
       t1=(EditText) findViewById(R.id.input1); 
       t2=(EditText) findViewById(R.id.input2); 
       Double res; 
       String txt; 
       int num1=Integer.parseInt(t1.getText().toString()); 
       res=(double)num1*.4; 
       System.out.println(res); 
       txt=res.toString(); 
       t2.setText(txt); 

       }}); 
    break; 
} 
case 5: 
{ 
    b1=(ImageButton) findViewById(R.id.convert1); 
    b1.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) {   
       t1=(EditText) findViewById(R.id.input1); 
       t2=(EditText) findViewById(R.id.input2); 
       Double res; 
       String txt; 
       int num1=Integer.parseInt(t1.getText().toString()); 
       res=(double)num1*12; 
       System.out.println(res); 
       txt=res.toString(); 
       t2.setText(txt); 

       }}); 
    break; 
} 
} 


switch(unitb) 
     { 
     case 0: 

      break; 
     case 1: 

      break; 
     case 2: 

      break; 
     case 3: 

      break; 
     case 4: 

      break; 
     case 5: 

      break; 

     } 
} 
+0

회 전자 항목을 누를 때마다 단가가 표시됩니까? – Kanth

+0

현재 선택한 항목 위치를 저장하는 변수입니다. 내가 알 수 있듯이 거기에 그것을 선언했다. – user1976863

+0

모든 수업을 올릴 수 있니? –

답변

0

unita 값을 전역 적으로 선언하여 다른 방법으로 사용하십시오.

int unita; 

unit1.setOnItemSelectedListener(new OnItemSelectedListener() 
{ 
@Override 
public void onItemSelected(AdapterView<?> arg0, View arg1, 
int arg2, long arg3) 
{ 
unita = arg0.getSelectedItemPosition(); 
Toast.makeText(getBaseContext(), 
"You have selected item position : " + unita, 
Toast.LENGTH_SHORT).show(); 
} 
@Override 
public void onNothingSelected(AdapterView<?> arg0) {} 
}); 
+0

이것은 도움이되었습니다. 감사! – user1976863

관련 문제