2016-12-23 5 views
-1

私はString Arrayリストを別のアクティビティに送信します。別のアクティビティでは、すべてのアイテムを取り、すべてのアイテムのテキストビューを作成しますが、それをやる。Arraylist内のすべてのアイテムのテキストビューを作成

package com.TOF.versus; 
import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import java.util.ArrayList; 
public class MainActivity extends AppCompatActivity{ 
    Button exitBtn; 
    EditText namesTxt; 
    TextView namesNumber; 
    Button namesBtn; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     exitBtn=(Button) findViewById(R.id.exitBtn); 
     exitBtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       finish(); 
      } 
     }); 
     namesNumber=(TextView)findViewById(R.id.namesNumber); 
     namesTxt = (EditText) findViewById(R.id.namesTxt); 
     namesBtn=(Button)findViewById(R.id.namesBtn); 
     inputName(); 
    } 
    public void inputName(){ 
     final ArrayList <String> names= new ArrayList<String>(); 
     namesTxt.setSingleLine(); 
     namesTxt.setOnKeyListener(new View.OnKeyListener() { 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) { 
        names.add(namesTxt.getText().toString()); 
        namesNumber.setText(Integer.toString(names.size())); 
        namesTxt.setText(""); 
        namesBtn.setOnClickListener(new View.OnClickListener() { 
         public void onClick(View v) { 
          Intent send = new Intent(v.getContext(), Names.class); 
          send.putStringArrayListExtra("E",names); 
          startActivity(send); 
         } 
        }); 
       } 
       return false; 
      }});}} 

と私はテキストビューを作成する方法がわからない、この第2の活性コード:

package com.TOF.versus; 


import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.ActionBar; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.RelativeLayout; 
import android.widget.TextView; 

import java.util.ArrayList; 

public class Names extends AppCompatActivity { 
    Button backBtn; 
    RelativeLayout names_layout; 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.names_layout); 
     backBtn=(Button)findViewById(R.id.backBtn); 
     backBtn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       finish(); 
      } 
     }); 
     names_layout=(RelativeLayout) findViewById(R.id.db2_root); 
     TextView text=new TextView(this); 
     Intent recv=getIntent(); 
     ArrayList<String> str= recv.getStringArrayListExtra("E"); 
     text.setText(str.get()); 
     text.setLayoutParams(new ActionBar.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT)); 
     names_layout.addView(text); 
     System.out.println(str); 
} 
} 
+0

を理解するための十分な情報を提供する必要がありますか? – Raghavendra

答えて

2
あなたがする必要があります

これが私の最初のアクティビティコードでありますあなたが持っているリストを使って作成したArrayListを、 のIntentからループします。

ArrayList<String> str= recv.getStringArrayListExtra("E"); 

for (int i = 0; i < str.size(); i++) { 
     TextView text = new TextView(this); 
     text.setText(str.get(i)); 
     text.setLayoutParams(new   
ActionBar.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT)); 
     names_layout.addView(text); 
} 

ので、これは、STR ArrayListをループTextViewの新しいインスタンスを作成し、配列内のその位置に対応する文字列は、テキストを設定します、レイアウトのparamsと、それはあなたのレイアウトにあります追加します。

編集

あなたがルールを適用する方法を学習しない限り、あなたは、動的にビューを追加している場合、私はそれに割り当てられた向きでLinearLayoutではなくnames_layoutためRelativeLayoutを使用してreccomendだろう。

のLinearLayoutとRelativeLayoutの違いは何ですか?How do I specify layout_below programmatically for a LinearLayout?

RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); 
relativeParams.addRule(RelativeLayout.BELOW, idOfTheViewBelow); 

編集2から取ら

これは、uは名前の活動にリストビューを使用していないのはなぜ

  1. What are the differences between LinearLayout, RelativeLayout, and AbsoluteLayout?
  2. LinearLayout example
+0

linearLayoutとRelativeLayoutの違いは何ですか –

+0

編集を確認してください。 –

関連する問題