0

这是我的代码,我在列表视图中看不到 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);

        }
    });
}

这是我在 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 >
4

1 回答 1

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,你很高兴去。

于 2013-11-07T23:13:32.320 回答