2014-03-31 5 views
0

나는 안드로이드 애플 리케이션에서 일하고 있습니다. 내 UI의 일부에는 회 전자가 있습니다. 회 전자의 이름은 다섯 곳으로되어 있습니다. 또한 동일한 레이아웃에는 두 개의 라디오 버튼이 있습니다. 선택된 옵션에 따라 새로운 활동을 만들고 싶습니다. 하나는 장소 목록과 두 개의 라디오 버튼 중 하나입니다. place1이 목록에서 선택되고 radiobutton1이 선택되었다고 가정하면 이에 따라 새로운 의도를 열어야합니다. 코드에 어댑터보기가 포함되어 있지만 두 번째 화면 이후에 응용 프로그램이 닫힙니다. LogCat (Eclipse를 사용하고 있습니다)는 어댑터 관련 문제를 지적합니다. 여기에 코드가 있습니다. 다른 대안이나 수정을 제안하십시오. 미리 감사드립니다!회 전자 문제, Android

package com.example.travel; 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.RadioGroup; 
import android.widget.Spinner; 
import android.widget.TextView; 
import android.widget.Toast; 
import android.view.View.OnClickListener; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemSelectedListener; 
@SuppressWarnings("unused") 
public class Mumbai extends Activity { 
TextView tv; 
//int result_code=1; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.three); 
    tv=(TextView)findViewById(R.id.textView1); 
    Toast.makeText(this, "third Screen.", Toast.LENGTH_SHORT).show(); 
    Button b1=(Button)findViewById(R.id.button1); 
    Button b2=(Button)findViewById(R.id.button2); 
    int for_spinner=0; 
    int for_radio=0; 
    b1.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent i=new Intent(Mumbai.this,two.class); 
      setResult(3,i); 
      finish(); 


     } 
    }); 


    RadioGroup radiogroup=(RadioGroup)findViewById(R.id.radioGroup2); 
    int checkedRadioButton=radiogroup.getCheckedRadioButtonId(); 
    switch(checkedRadioButton) { 
     case R.id.radio0 : for_radio=1; 
          break; 
     case R.id.radio1 : for_radio=2; 
          break; 

    } 

    Spinner answer=(Spinner)findViewById(R.id.spinner1); 
    answer.setOnItemSelectedListener(new OnItemSelectedListener() { 

     public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      int value_spinner= (Integer) parent.getItemAtPosition(position); 

      switch(position) { 
      case 0: //place1 
        int for_spinner=1; 
        break; 
      case 1: //place2 
        for_spinner=2; 
        break; 
      case 2: //place3 
        for_spinner=3; 
        break; 
      case 3: //place4 
        for_spinner=4; 
        break; 
      case 4: //place5 
        for_spinner=5; 
        break; 

      } 

     } 

     public void onNothingSelected(AdapterView<?> parent) { 

      int for_spinner=1; 
     } 

    }); 
    final int new_for_spinner=0; 
    final int new_for_radio=0; 
    for_spinner=new_for_spinner; 

    b2.setOnClickListener(new View.OnClickListener() { 

     //@SuppressWarnings("unused") 
     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      if(new_for_radio==1 && new_for_spinner==1) 
      { 
       Intent i1= new Intent(Mumbai.this,food.class); 
       startActivityForResult(i1,1); 
       i1.putExtra("new_for_spinner","value"); 
      } 
      if(new_for_radio==1 && new_for_spinner==2) 
      { 
       Intent i1= new Intent(Mumbai.this,food.class); 
       startActivityForResult(i1,1); 
       i1.putExtra("new_for_spinner","value"); 
      } 
      if(new_for_radio==1 && new_for_spinner==3) 
      { 
       Intent i1= new Intent(Mumbai.this,food.class); 
       startActivityForResult(i1,1); 
       i1.putExtra("new_for_spinner","value"); 
      } 
      if(new_for_radio==1 && new_for_spinner==4) 
      { 
       Intent i1= new Intent(Mumbai.this,food.class); 
       startActivityForResult(i1,1); 
       i1.putExtra("new_for_spinner","value"); 
      } 
      if(new_for_radio==1 && new_for_spinner==5) 
      { 
       Intent i1= new Intent(Mumbai.this,food.class); 
       startActivityForResult(i1,1); 
       i1.putExtra("new_for_spinner","value"); 
      } 



     } 
    }); 
} 

    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
     if(requestCode==1 && resultCode==0) 
     { 
      Toast.makeText(this, "Back from Image page", Toast.LENGTH_SHORT).show(); 
      super.onActivityResult(requestCode, resultCode, data); 

     } 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

} 

답변

0

당신 변수 new_for_spinner, 때문에이 라인의 new_for_radiofor_spinner :는 클래스 two.class의 이름을 지정하기 때문에

for_spinner=new_for_spinner; 

이 또한 내가 http://java.about.com/od/javasyntax/a/nameconventions.htm을 읽어보실 것을 제안 정말 나쁜 ....

+0

제발 정교하게, 나는 그것을 얻지 못했습니다. 또한 이름 변경과 완전히 동의합니다. 평가판 코드이고 두 번째 화면을 가리 킵니다. 그것을 바꿀 것입니다. 감사. –