2017-01-13 3 views
0


私はTextViewの上の配列リストのデータを表示しようとしていますが、私は問題を抱えている

配列リストのデータを示していない。..
ユーザーは、その後のEditTextでリストにデータを追加し、 ..これらのデータは、TextViewにしてに持っているが、それは動作しません..私はベースを置く必要がある場合
は私は知らないが、私はそれが必要とされることはないと思う

my xmlファイルは:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:id="@+id/textView" /> 

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@+id/add" 
    android:layout_toRightOf="@+id/textView" 
    android:layout_toEndOf="@+id/textView"> 

    <LinearLayout 
     android:id="@+id/linearLayout" 
     android:layout_width="match_parent" 
     android:orientation="vertical" 
     android:layout_height="wrap_content"> 

    </LinearLayout> 
</ScrollView> 

<Button 
    android:id="@+id/add" 
    android:layout_width="60dp" 
    android:layout_height="60dp" 
    android:text="" 

    android:background="@android:drawable/ic_menu_add" 
    android:tint="#91d1be" 

    android:layout_below="@+id/textView" 
    android:layout_toRightOf="@+id/textView" 
    android:layout_toEndOf="@+id/textView" /> 

</RelativeLayout> 
です。

Javaコードは次のとおりです。

public class MainActivity extends Activity { 

private LinearLayout mainLinearLayout; 
int counter=0, i=0; 

TextView mTextView; 
Button add; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mTextView = (TextView)findViewById(R.id.textView); 

    add = (Button) findViewById(R.id.add); 
    mainLinearLayout = (LinearLayout) findViewById(R.id.linearLayout); 

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

      LinearLayout linearLayout = new LinearLayout(MainActivity.this); 
      TableLayout.LayoutParams lp = new TableLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, 1f); 
      linearLayout.setLayoutParams(lp); 
      linearLayout.setOrientation(LinearLayout.HORIZONTAL); 

      EditText ed; 
      List<EditText> allEds = new ArrayList<EditText>(); 

      ed = new EditText(MainActivity.this); 
      allEds.add(ed); 
      ed.setId(counter); 
      ed.setLayoutParams(new TableLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT, 0.5f)); 
      linearLayout.addView(ed); 
      ed.setInputType(InputType.TYPE_CLASS_NUMBER| InputType.TYPE_NUMBER_FLAG_DECIMAL); 

      mainLinearLayout.addView(linearLayout); 

      Double[] doubles = new Double[allEds.size()]; 
      String[] strings = new String[allEds.size()]; 

      for(i=0;i<allEds.size();i++){ 

       strings[i]= allEds.get(i).getText().toString(); 

       if(strings[i].length()>0){ 
        doubles[i] = Double.parseDouble(strings[i]); 
       } 

       mTextView.setText(String.valueOf(strings[i])); 
      } 
     } 
    }); 
} 
} 

は私を助けることができる誰です?ありがとうございました!!

+0

自分でリストビュー機能を再実装しようとしています - これが役に立てば幸い? – Gudin

+0

あなたの 'ListView'はどこですか? –

+0

ごめんなさい...アレイリスト私は言いたかった!! –

答えて

1

onClick()メソッドの外側でallEdsを初期化し、文字列配列のすべての値を結合してtextviewに表示します。

private LinearLayout mainLinearLayout; 
int counter = 0, i = 0; 

TextView mTextView; 
Button add; 
List<EditText> allEds; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mTextView = (TextView) findViewById(R.id.textView); 

    add = (Button) findViewById(R.id.add); 
    mainLinearLayout = (LinearLayout) findViewById(R.id.linearLayout); 
    allEds = new ArrayList<EditText>(); 

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

      LinearLayout linearLayout = new LinearLayout(MainActivity.this); 
      TableLayout.LayoutParams lp = new TableLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, 1f); 
      linearLayout.setLayoutParams(lp); 
      linearLayout.setOrientation(LinearLayout.HORIZONTAL); 

      EditText ed; 

      ed = new EditText(MainActivity.this); 
      allEds.add(ed); 
      ed.setId(counter); 
      ed.setLayoutParams(new TableLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT, 0.5f)); 
      linearLayout.addView(ed); 
      ed.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); 

      mainLinearLayout.addView(linearLayout); 

      Double[] doubles = new Double[allEds.size()]; 
      String[] strings = new String[allEds.size()]; 


      for (i = 0; i < allEds.size(); i++) { 

       strings[i] = allEds.get(i).getText().toString(); 

       if (strings[i].length() > 0) { 
        doubles[i] = Double.parseDouble(strings[i]); 
       } 
      } 

      mTextView.setText(TextUtils.join(" ",strings)); 
     } 
    }); 
} 
+0

うわー!! 働いています...ありがとうございます!唯一の問題は、アプリケーションの開始時に、TextViewは "null"と言われています。あなたはアイデアがありますか? –

+0

あなたは、アプリケーションの開始時に "null"というテキストが表示されますか? –

+0

さて、私はそれを修正しました...ありがとうございました! ボタンを押したときにカーソルを次の行に移動する方法を知っていますか? –

0
public class MainActivity extends Activity { 

private LinearLayout mainLinearLayout; 
int counter=0, i=0; 

TextView mTextView; 
Button add; 
List<EditText> allEds; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    mTextView = (TextView)findViewById(R.id.textView); 

    add = (Button) findViewById(R.id.add); 
    mainLinearLayout = (LinearLayout) findViewById(R.id.linearLayout); 

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

      LayoutParams linearLayout = new LayoutParams(
    LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 


      EditText ed; 
allEds = new ArrayList<EditText>(); 

      ed = new EditText(MainActivity.this); 
      allEds.add(ed); 
      ed.setId(counter); 
      ed.setLayoutParams(linearLayout); 
ed.setInputType(InputType.TYPE_CLASS_NUMBER| InputType.TYPE_NUMBER_FLAG_DECIMAL); 


      mainLinearLayout.addView(ed); 

      Double[] doubles = new Double[allEds.size()]; 
      String[] strings = new String[allEds.size()]; 

      for(i=0;i<allEds.size();i++){ 

       strings[i]= allEds.get(i).getText().toString(); 

       if(strings[i].length()>0){ 
        doubles[i] = Double.parseDouble(strings[i]); 
       } 

       mTextView.setText(String.valueOf(strings[i])); 
      } 
     } 
    }); 
} 
} 
関連する問題