2017-03-23 12 views
0

私はアプリを作る方法を学び始めています。私はランダムに入力されたタスクを表示する必要のあるアプリケーションを作りたいと思っています。まず、ユーザーは、作成するタスクの数を選択し、次にEditTextでタスクを書き留める必要があります。私は特定の量のEditTextを作成することができますが、ボタンを押すとすべてのEditText入力を表示する方法がわかりません。私はコードの多くのバージョンを持っていますが、それらのコードは動作しません。私は立ち往生し、助言が必要です。1つのTextViewでButtonを押した後に複数のEditText入力を表示する方法は?

ここは、2番目のアクティビティのコードバージョンです。

public class TaskActivity extends AppCompatActivity { 

LinearLayout containerLayout; 
TextView receiverTV; 
TextView tv; 
TextView displayTaskTv; 

EditText et; 

Button btn; 
Button randomTaskBtn; 

int i = 0; 
int size; 

String inputEditText; 
String inputTextView; 

String stringsEt[]; 
String stringsTv []; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_task); 
    containerLayout = (LinearLayout) findViewById(R.id.linear_layout); 


    receiverTV = (TextView) findViewById(R.id.receiver_textView); 


    Intent intent = getIntent(); 
    int number = intent.getIntExtra("Number", defaultValue); 
    receiverTV.setText("You have chosen to add: " + number + " tasks!"); 

    createEtTvBtn(number); 
    createBtn(); 
    createTextView(); 

} 

public void createEtTvBtn(int number) { 

    for (i = 1; i <= number; i++) { 
     tv = new TextView(this); 
     tv.setText("Task nr: " + i); 
     tv.setPadding(16, 16, 16, 16); 
     tv.setTextColor(Color.parseColor("#008b50")); 
     tv.setTextSize(20); 
     tv.setId(i + value); 
     containerLayout.addView(tv); 


     et = new EditText(this); 
     et.setHint("Enter task nr: " + i); 
     et.setId(i + value); 
     et.setLines(2); 
     containerLayout.addView(et); 

     btn = new Button(this); 
     btn.setText("Confirm task nr: " + i); 
     btn.setId(i + value); 
     containerLayout.addView(btn); 

     final List<EditText> allEditText = new ArrayList<EditText>(); 
     final List<TextView>allTextView = new ArrayList<TextView>(); 
     final List<Button>allButton = new ArrayList<Button>(); 

     String[] stringsEditText = new String[(allEditText.size())]; 
     String[] stringsTextView = new String[(allTextView.size())]; 
     String[] stringsBtn = new String[(allButton.size())]; 


     for(int i=0; i < allEditText.size(); i++){ 
      stringsEditText[i] = allEditText.get(i).getText().toString(); 

     } 
     for (int i=0; i < allTextView.size(); i++) { 
      stringsTextView[i] = allTextView.get(i).getText().toString(); 
      size = allTextView.get(i).getText().toString().length(); 
     } 
     for(int i=0; i < allButton.size(); i++){ 
      stringsBtn[i] = allButton.get(i).getText().toString(); 

     } 

     allTextView.add(tv); 

     allEditText.add(et); 

     allButton.add(btn); 

     allButton.get(0).setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       inputEditText = allEditText.get(0).getText().toString(); 
       stringsEt = new String[] {allEditText.get(0).getText().toString()}; 


       if (inputEditText.length() > 0) { 
       allTextView.get(0).setText(inputEditText); 

        allEditText.add(allEditText.get(0)); 
        allEditText.get(0).setText(""); 

        } 
        else if (inputEditText.length() ==0){ 
        Toast.makeText(TaskActivity.this, "You need to write down your task", Toast.LENGTH_LONG).show(); 
        } 
       inputTextView = allTextView.get(0).getText().toString(); 
       stringsTv = new String[] {allTextView.get(0).getText().toString()}; 
       if (inputTextView.length() > 0) { 
        allTextView.get(0).getText(); 
        allTextView.add(allTextView.get(0)); 
       } 
      } 
     }); 

    } 
} 

    private Button createBtn() { 
    randomTaskBtn = new Button(this); 
    randomTaskBtn.setText("Task"); 
    containerLayout.addView(randomTaskBtn); 

     randomTaskBtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 


      double luckyTask = Math.random(); 
      luckyTask *=size; 
      int luckyIndex = (int)luckyTask; 
      displayTaskTv.setText(stringsTv[luckyIndex]); 
       } 
     }); 
     return randomTaskBtn; 

      } 
    private TextView createTextView() { 
    displayTaskTv = new TextView(this); 
    displayTaskTv.setTextSize(20); 
    displayTaskTv.setTextColor(Color.parseColor("#dd2626")); 
    displayTaskTv.setText(""); 
    containerLayout.addView(displayTaskTv); 
     return displayTaskTv; 

} 

} 

建設的なアドバイスありがとうございました。

私のコードは大混乱であると確信しています。私はもっ​​と多くの方法を作りたがっていたが成功しなかった。

+0

EditTextとボタンを動的に作成し、特定のeditTextに割り当てる各ボタンをクリックしてテキストを取得しますか?もし私がそれを正しいとすれば、続けるように教えてください –

+0

はい、そうです。タスクの確定ボタンをクリックすると、TextViewにEditText入力を表示することができます。 1つの新しいTextViewのすべてのテキストビューのテキストを新しいアクティビティで表示するもう1つのボタンを追加したいと思います。そのレベルに達した後、タスクの1つをランダムに表示したいと思います。 – Marzena

+0

EditTextの量はユーザーに依存するため、プログラムでEditTextを作成したいと思います。ユーザーは追加するタスクの数を選択します。各タスクは別々のEditTextです。 MainActivityでは、ユーザーはタスクの量を選択できます。 TaskActivityでは、ユーザー番号で選択したEditText、TextView、Buttonを作成します。私はEditTextから入力を受け取り、ボタンを押してTextViewに表示することができます。残念ながら、1つのTextViewにすべてのEditTextのテキストを表示できるという希望は失われています。 – Marzena

答えて

0

これは、あなたが

ステップ1何をすべきかである - 複数EditTextsを作成し、ArrayListでそれらの一つ一つを保存 はmyEditTextListを言います。あなたが好きな場所

String str = "" 
for(EditText et: myEditTextList) { 
    str += et.getText().toString(); 
} 

ステップ3 - 表示データstr内のすべての編集テキストから

ステップ2 - テイクデータ。

+0

ありがとうございます!私はすぐにそれをやろうとします – Marzena

+0

私は私のアプリの簡単なバージョンを作った、あなたのコードは実際に動作しています。もう一度ありがとうございます。 – Marzena

+0

こんにちはアビシェク、もう1つ質問していただけますか? – Marzena

関連する問題