0

リストビューで2つの数字を追加するのに問題があります。これは、2つのテキストビュー(数値ごと)のある私の行です。textView2無視

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="0"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView3"
        android:gravity="center_horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=" - "
        android:textAppearance="?android:attr/textAppearanceLarge" />

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

</LinearLayout>

ユーザーが番号を追加すると、リストビューに表示されます。その2番目の数字は11である必要があります-ユーザーが挿入したその数字。それはすべて機能していますが、その2番目の数字を表示する方法がわかりません。

public class MainActivity extends Activity {
    ArrayAdapter<String> m_adapter;
    ArrayList<String> m_listItems = new ArrayList<String>();
    Button bt;
    EditText et;
    TextView tv;
    ListView lv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Inflate the menu; this adds items to the action bar if it is present.
                bt = (Button) findViewById(R.id.button1);
                et = (EditText) findViewById(R.id.editText1);
                tv = (TextView) findViewById(R.id.textView1);
                lv = (ListView) findViewById(R.id.lista);
                m_adapter = new ArrayAdapter<String>(this,R.layout.row, R.id.textView1);
                lv.setAdapter(m_adapter);
                //final String input = et.getText().toString();

                bt.setOnClickListener(new View.OnClickListener() {

                    public void onClick(View v) {

                        String input = et.getText().toString();
                        if(null!=input&&input.length()>0){     
                        String maxpunti = "11";
                        int a = Integer.parseInt(maxpunti);
                        int b = Integer.parseInt(input);
                        int c = a-b;
                        String input2 = String.valueOf(c);
                        m_adapter.add(input);
                        m_adapter.add(input2);
                        m_adapter.notifyDataSetChanged();


                      }
                    }
                });
    }
} 
4

1 に答える 1

1

ArrayAdapter<String> のデフォルトの実装は、単一の Stringvalue を単一のテキスト フィールドにバインドします。各リストアイテムまたはリストビューの「行」に複数のビューがあるため (独自の ArrayAdapter を実装/拡張し、getView メソッドをオーバーライドする必要があります。それらは、リストにあるカスタムビューの任意の数に値を設定できます。アイテムレイアウト。

簡単な例を見てください。リストビュー/アダプターは非常に中心的なものであるため、android でのリストビュー/アダプターの動作に関するドキュメントを参照することをお勧めします。

于 2013-01-24T13:43:20.620 に答える