显示从编辑文本到列表视图的用户输入

时间:2013-01-24 13:20:37

标签: android android-listview android-arrayadapter

我在列表视图中添加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>

当用户添加号码时,它将显示在列表视图中。第二个数字需要为11 - 用户插入的数字。它一切正常,但我不知道如何显示第二个数字。

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();


                      }
                    }
                });
    }
} 

1 个答案:

答案 0 :(得分:1)

ArrayAdapter&lt; String&gt;的默认实现将单个Stringvalue绑定到单个文本字段。由于列表视图中的每个列表项或“行”都有多个视图(您需要实现/扩展自己的ArrayAdapter并覆盖getView方法。 您可以为列表项布局中的任意数量的自定义视图设置值。

看看a simple example,看看有关listviews / adpters如何在android中工作的som文档可能是一个好主意,因为它们非常重要。