2014-01-20 3 views
1

목록보기를 만들고 해당 라디오 버튼의 텍스트를 하위 항목으로 표시하려고합니다. Arraylist로 테스트하고 간단한 어댑터를 사용하지 마십시오. 지금 당장은 내 관심사가 아니라 NullPointerException을 보여주는 ListView의 click 이벤트입니다. 이전 게시물 몇 개를 언급했지만 도움이되지 않았습니다. 나에게 오류를 식별하고 무엇을 유발 도움 요청null 포인터 ListView의 항목을 선택하는 중 예외가 발생했습니다.

WForecast.java

public class WForecastHome extends Activity { 

    ListView list; 
    Button search; 

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

     search = (Button)findViewById(R.id.BTSearch); 
     list = (ListView) findViewById(R.id.listView1); 

     String[] s = new String[]{"Temparature format", 
       "Update interval"}; 

     search.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

      } 
     }); 

     ArrayAdapter<String> aa = new ArrayAdapter<String> (WForecastHome.this, android.R.layout.simple_expandable_list_item_1 , s); 
     list.setAdapter(aa); 

     list.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
        long arg3) { 
       // TODO Auto-generated method stub 

       Dialog dialog = new Dialog(WForecastHome.this); 
       dialog.setTitle("Select temprature format"); 
       dialog.setContentView(R.layout.dialog); 
       dialog.show(); 

       RadioGroup rg = (RadioGroup) findViewById(R.id.radioGroup1); 
       final RadioButton celcius = (RadioButton) findViewById(R.id.celcius); 
       final RadioButton fahrenheit = (RadioButton) findViewById(R.id.fahrenheit); 

       rg.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

        @Override 
        public void onCheckedChanged(RadioGroup group, int checkedId) { 
         // TODO Auto-generated method stub 
         switch(checkedId) 
         { 
         case R.id.celcius : 
          celcius.getText(); 
          break; 

         case R.id.fahrenheit : 
          fahrenheit.getText(); 
         } 
        } 
       }); 

      } 
     }); 
    } 

} 

로그 캣 오류

01-20 22:16:17.648: D/ddm-heap(333): Got feature list request 
01-20 22:16:17.788: W/ResourceType(333): Skipping entry 0x7f020000 in package table 0 because it is not complex! 
01-20 22:16:21.528: W/ResourceType(333): Skipping entry 0x7f020000 in package table 0 because it is not complex! 
01-20 22:16:23.208: D/AndroidRuntime(333): Shutting down VM 
01-20 22:16:23.208: W/dalvikvm(333): threadid=3: thread exiting with uncaught exception (group=0x4001aa28) 
01-20 22:16:23.208: E/AndroidRuntime(333): Uncaught handler: thread main exiting due to uncaught exception 
01-20 22:16:23.218: E/AndroidRuntime(333): java.lang.NullPointerException 
01-20 22:16:23.218: E/AndroidRuntime(333): at com.nsa.WForecastHome$2.onItemClick(WForecastHome.java:61) 
01-20 22:16:23.218: E/AndroidRuntime(333): at android.widget.AdapterView.performItemClick(AdapterView.java:284) 
01-20 22:16:23.218: E/AndroidRuntime(333): at android.widget.ListView.performItemClick(ListView.java:3246) 
01-20 22:16:23.218: E/AndroidRuntime(333): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1635) 

. 감사합니다. 내 생각

답변

1

변경

RadioGroup rg = (RadioGroup) dialog.findViewById(R.id.radioGroup1); 
final RadioButton celcius = (RadioButton) dialog.findViewById(R.id.celcius); 
final RadioButton fahrenheit = (RadioButton)dialog. findViewById(R.id.fahrenheit); 

에 당신은 dialog.xml의 전망을 제공합니다. 위와 같이 조회수를 초기화하십시오.

findViewById은 현재 비정상 배치 된 ID의보기를 찾습니다. 귀하의 경우에는 사용자 정의 레이아웃을 대화 상자로 설정합니다. 그래서 귀하의보기를 초기화하기 위해 대화 상자 개체를 사용

+0

이 오류가 발생입니까 ?? 그렇다면 어떻게? 죄송합니다, 논리를 얻지 못했습니다. – Saggy

+0

@Saggy는 dialog.xml을 보여줍니다. dialog.xml에 라디오 버튼이 있다면 내 게시물에 제안 된대로 초기화해야합니다. 당신이 얻지 못하는 논리는 무엇입니까? 그것의 NUllPointerExcpetion은 61 행의 어떤 것이 null임을 가리킨다. 코드에서 라인 61은 무엇입니까 – Raghunandan

+0

예 dialog.xml에는 radiobutton을 포함한 모든 뷰가 있습니다. 내가 얻지 못한 점은 우리가 dialog.findViewById (R.id.radioGroup1)에 "dialog"를 추가해야하는 이유입니다. 그리고 더. 나는이 방법을 더 일찍 사용하지 않았고 모든 프로그램이 효과가있다. 힘든 일이 여기에 내 문제를 해결. – Saggy

관련 문제