2013-05-14 70 views
-2

我已經使用arrayAdapter創建了一個listview。它包含Android ListView響應

  1. 一個TextView

  2. 兩個單選按鈕(即單選按鈕組)

  3. 一個EditText上

另外,具有提交按鈕添加腳註。 TextView是動態設置的.Radiobuttons有和沒有值。

問題是,單擊提交按鈕時,我想從列表視圖中將所有值發送到某處,但對於單選按鈕和編輯文本,獲得空值

這裏是我的代碼

final Question weather_data[] = new Question[] 
      { 
      new Question(str[0], r1, r2, etext, radio_group), 
      new Question(str[01], r1, r2, etext, radio_group), 
      new Question(str[02], r1, r2, etext, radio_group), 
      new Question(str[03], r1, r2, etext, radio_group), 
      new Question(str[04], r1, r2, etext, radio_group), 
      }; 

    QuestionAdapter adapter = new QuestionAdapter(this, 
      R.layout.listview_item_row, weather_data); 


    listView1 = (ListView)findViewById(R.id.securityListView); 

    View header = (View)getLayoutInflater().inflate(R.layout.listview_header_row, null); 
    listView1.addHeaderView(header); 
    View footer = (View)getLayoutInflater().inflate(R.layout.listview_footer_row, null); 
    listView1.addFooterView(footer); 
    Button btnSubmit=(Button)(footer.findViewById(R.id.submit)); 
    listView1.setAdapter(adapter); 
    Question w1= (Question) listView1.getItemAtPosition(2); 

    System.out.println(w1); 
    System.out.println(listView1.getParent().toString()); 
    System.out.println("Child Count is "+listView1.getChildCount()); 


    btnSubmit.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Toast.makeText(getApplicationContext(), "Footer Toast", Toast.LENGTH_LONG).show(); 
      System.out.println("In Footer OnClick"); 
      Toast.makeText(MainActivity.this,"Footer Toast", Toast.LENGTH_LONG).show(); 

      myQue=(Question) listView1.getItemAtPosition(3); 
      System.out.println(((Question) listView1.getItemAtPosition(3)).editResponse.getText()+" In Edit Text"); 
      System.out.println(((Question) listView1.getItemAtPosition(3)).radioYes.isChecked()); 
      // I want these 2 lines to print the answer (values entered by user). But showing null or values set by me at runtime. 

     } 
    }); 

} 

}

+3

您需要發佈您的代碼 – Nermeen 2013-05-14 09:11:08

+0

你的代碼嗎? – Sam 2013-05-14 09:11:41

+0

看到編輯代碼 – 2013-05-14 10:36:52

回答

0

這樣,也有解決問題的幾種方法。

試圖從ListView的項目,他們找到的文本和布爾值:

 public void footerButtonClick(){ 
      for(int i=0;i<listView.getChildCount;i++){ 
       String text=((EditText)listView.getChildAt(i).findViewById(R.id.your_edit_text_id)). 
       getText().toString(); 
       //and the same with your radioGroups. 

      } 

     } 

,或者你可以嘗試在MainActivity類別創建布爾值和字符串的靜態數組,併爲EditTexts通知textWatchers和valueChangers for radioGroups。當文本或布爾值發生變化時,將它們更改爲靜態數組。然後你可以使用這個數組時,你按下按鈕

+0

不明白你是什麼意思saing由用戶設定meen,並通過動態地 – Alex 2013-05-14 11:24:10

+0

是。通過這種方式獲取文本..但不能爲Radio Button工作。您可以爲radioButton提供代碼。 另一個問題是我的listView.getChildCount()方法返回5,但在for循環i = 3和i = 4拋出空指針豁免.. 此外當我在位置1的editText鍵入的東西,然後相同的文本被複制列表視圖的最後一個editText。我無法訪問位置0和1的編輯文本。可能是什麼問題? – 2013-05-15 07:57:33

0

爲你節省一些並行數據結構中的所有這些信息,當這些價值變動就像當單選按鈕的變化和文本視圖的文本改變了你需要更新你的價值觀,當點擊提交按鈕時發送這些值。