在listview android中看不到textview值

时间:2013-11-07 19:34:29

标签: android listview

这是我的代码,我无法在listview中看到textview的价值。

我的吐司不起作用

我是Android的新手,为什么我看不到它:

我无法获得

的价值
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    adpt  = new SimpleAdapter(new ArrayList<Contact>(), this);
    ListView lView = (ListView) findViewById(R.id.listview_search);

    lView.setAdapter(adpt);
    lView.setTextFilterEnabled(true);

    String[] values = new String[] {
            "A",
            "B",
            "C",
            "D",
            "E",
            "F",
            "G",
            "H",
            "I",
            "J",
            "K",
            "L",
            "M",
            "N",
            "O",
            "P",
            "Q",
            "R",
            "S",
            "T",
            "U",
            "V",
            "W",
            "X",
            "Y",
            "Z"
    };
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, android.R.id.text1, values);


    // Assign adapter to ListView
    lView.setAdapter(adapter);

    // React to user clicks on item
    lView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        public void onItemClick(AdapterView<?> parentAdapter, View view, int position,
                                long id) {

            TextView firstletter = (TextView) view.findViewById(R.id.firstletter);
            Toast.makeText(MainActivity.this, firstletter.getText(),

  Toast.LENGTH_SHORT).show();
            //Intent i = new Intent(getApplicationContext(), ContactsActivity.class);
            //i.putExtra("firstletter", name.getText() );
            //i.putExtra("email", email.getText());
            //startActivityForResult(i, 100);

        }
    });
}

这是我的list_item在我的listview中的activity_main布局:

<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
                 android:layout_width="fill_parent"
                 android:layout_height="wrap_content"
                 android:background="#ff9ac2ff"
                 android:padding="8dp">
    <LinearLayout android:id="@+id/item_layout"
                  android:orientation="vertical"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:paddingLeft="10dip">
        <TextView
                android:id="@+id/firstletter"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#FF7F3300"
                android:textSize="20dip"
                android:textStyle="italic"
                />
    </LinearLayout>
</RelativeLayout >

1 个答案:

答案 0 :(得分:1)

我无法准确理解您尝试使用adpt = new SimpleAdapter(new ArrayList<Contact>(), this);做什么以及为什么要将此适配器分配给ListView lView,只能将其重新分配给ArrayAdapter<String> adapter。我猜你试图说明一点,忘了一些点点滴滴。

您的主要问题是您尝试使用以下方式获取所点击列表项的值的方式:

TextView firstletter = (TextView) view.findViewById(R.id.firstletter);
Toast.makeText(MainActivity.this, firstletter.getText(), Toast.LENGTH_SHORT).show();

你应该做什么,因为你已经知道了价值观(你是第一个分配它们的人:P),简单地说:

Toast.makeText(MainActivity.this, values[position],Toast.LENGTH_SHORT).show();

final添加String[] values,您就可以了。