基本上我正在做的是通过listview为用户提供一个术语列表。这些术语在strings.xml中定义为字符串:
<item name="Bahrain testing">Bahrain</item>
<item name="Bangladesh testing">Bangladesh</item>
<item name="Barbados testing">Barbados</item>
<item name="Belarus testing">Belarus</item>
<item name="Belgium testing">Belgium</item>
<item name="Belize testing">Belize</item>
<item name="Benin testing">Benin</item>
我在myActivity.java中处理ListView:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.seoguide);
String[] countries = getResources().getStringArray(R.array.seoterm_array);
setListAdapter(new ArrayAdapter<String>(this, R.layout.seoguide, countries));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
这就是我走到尽头的地方,我尝试通过获取属性来通过项目名称来定义它,但这似乎不起作用。
我怀疑一个问题可能来自没有在seoguide.xml中定义的clickable
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="22sp" >
</TextView>
但我还没有看到其他教程的XML中定义的可点击。
我想要发生的事情是,当用户选择巴林时,Toast会弹出一条消息,上面写着“Baharain是波斯湾西岸附近的一个小岛屿州”。
提前感谢您的帮助!
修改 将myview.xml更改为seoguide.xml - 它反映了相同的信息
答案 0 :(得分:2)
Use this..
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
String str_item = lv.getItemAtPosition(position).toString();
Toast.makeText(getApplicationContext(), str_item,
Toast.LENGTH_SHORT).show();
}
}
答案 1 :(得分:1)
你需要把 .toString()
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText().toString(),Toast.LENGTH_SHORT).show();
希望这会起作用