0

これは私のコードです。リストビューにテキストビューの値が表示されません。

トーストが機能しない

私は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 レイアウトの list_item です。

<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 に答える