2017-07-07 9 views
1

私はIDをダイナミックなedittextとtexviewに入れようとしているいくつかの問題を抱えています。私はこのIDを別の機能で使いたいと思っています。 注:onCreate関数ではidを設定しません。ダイナミックなedittextとtextviewのIDを設定する

これは私のコードです:

  for (Map.Entry<String,String> entry : getMap(newContact).entrySet()) { 
      total++; 
      TextView ProgrammaticallyTextView = new TextView(this.getActivity()); 
      EditText ProgrammaticallyEditText = new EditText(this.getActivity()); 
      ProgrammaticallyTextView.setId(total); 
      ProgrammaticallyEditText.setId(total+1); 
      ProgrammaticallyTextView.setText(entry.getKey()); 
      ProgrammaticallyEditText.setText(entry.getValue()); 

      linearLayout.addView(ProgrammaticallyTextView); 
      linearLayout.addView(ProgrammaticallyEditText); 

      total++; 
     } 

これは私がすべての助けに感謝私はのEditTextとTextViewのIDの

public void onClick(View v) { 
    switch (v.getId()) { 

     case R.id.btn_create: 

      String test = ""; 

      for(int i=0; i < (this.total); i+=2){ 
       TextView tv = (TextView) v.findViewById(i++); 
       EditText et = (EditText) v.findViewById(i+2); 
       if ((i+2) >= this.total){ 
        test += tv.getText()+"="+et.getText(); 
       }else 
       { 
        test += tv.getText()+"="+et.getText()+","; 
       } 

      } 

      mContact = getMap(test); 
      newContactRequest(); 
      break; 

    } 
} 

を使用する機能です!

答えて

0

明示的にデータ型を文字列に変更する必要があります。 i ++を書いてみると、その値を整数として割り当てようとします。 これらの行に変更するとうまくいくはずです。

TextView tv = (TextView) v.findViewById(String.valueOf(i++)); 
EditText et = (EditText) v.findViewById(String.valueOf(i+2)); 
関連する問題