Я установил listview и прослушиватель onclick из примера, который я нашел. Код строит отлично и работает. Номер позиции «Позиция» верен в сообщении «Тост» при нажатии, но в тексте всегда отображается «Яблоко», которое является первой строкой в массиве. Я думаю, что String text = listText.getText(). ToString(); линия является проблемой, но все попытки не исправить неполадкуList View on the click listener всегда возвращает Apple
public class ElsEditTitles extends Activity {
String[] StrLabels = new String[16]; // Store Label names to string
String StrFile;
ListView TitleslistView;
Context context;
ListView listView;
static final String[] FRUITS = new String[] { "Apple", "Avocado", "Banana",
"Blueberry", "Coconut", "Durian" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.els_edit_titles);
context = this;
listView = (ListView) findViewById(R.id.listView);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.list_view_row, R.id.listText, FRUITS);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new ListClickhandler());
}
private class ListClickhandler implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> Adapter, View view,
int position, long arg3) {
TextView listText = (TextView) findViewById(R.id.listText);
String text = listText.getText().toString();
Toast.makeText(context, text + " " + position, Toast.LENGTH_LONG)
.show();
}
}
els_edit_tiles.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
list_view_row.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/listText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textSize="30dp"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
Я редактировал строку, добавив Просмотрите и решите проблему. Благодаря prijupaul и Иган
TextView listText = (TextView) view.findViewById(R.id.listText);
попробуйте адаптор [положение] не позиция только –