这是我的代码,我无法在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 >
答案 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
,您就可以了。