У меня есть следующий main.xml:Отображение списка элементов в ListView
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>
<ListView
android:id="@+id/listview"
android:layout_width="315px"
android:layout_height="379px"
android:layout_x="2px"
android:layout_y="50px"
>
</ListView>
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Select device:"
android:textSize="17sp"
android:layout_x="-2px"
android:layout_y="1px"
>
</TextView>
<Button
android:id="@+id/refresh"
android:layout_width="109px"
android:layout_height="wrap_content"
android:text="Refresh"
android:layout_x="209px"
android:layout_y="7px"
>
</Button>
</AbsoluteLayout>
Основной класс не делает ничего, кроме рисования макета.
У меня есть следующий класс и раскладку ListItems:
<?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="16sp" >
</TextView>
package com.android.bluetoothp2p;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class BTListView extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, 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();
}
});
}
Страны только массив со списком стран, в некоторых фиктивных ценностей.
Как я могу сделать элементы списка класса BTListView в ListView (с @ + id/listview) основного класса?
EDIT: теперь мой список работает, но он больше не доступен для контакта. Это код:
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(), "lolwat", Toast.LENGTH_SHORT).show();
}
});
Спасибо, добавив элементы в список, а затем создав основной макет, который перечислил список в список с указанным вами идентификатором. –
Тем не менее, это делает элементы списка unclickable –
Да, я думаю, вы должны переопределить метод onListItemClick() в своей активности, чем установить пользовательский обработчик: http://developer.android.com/reference/android/app/ListActivity. html # onListItemClick% 28android.widget.ListView,% 20android.view.View,% 20int,% 20long% 29 – mreichelt