私はアプリケーションを構築していますが、XMLファイルに定義された項目のListViewを設定しようとしていました。それほど難しいとは思っていませんでしたが、私は非常に奇妙な問題に遭遇しましたが(私はこれを理解したことはありませんでした)、これを解決する方法はわかりませんが、フォーラムとネットでも、 。ここに私のコードと結果を私の携帯電話に載せるつもりですが、言い換えれば、私のアプリはアイテムのリストを作成して要素を設定しているということです...しかし、起動すると、右のテキストが設定された最初の項目を見るだけで、他の要素のテキストはすべて設定されません。私が画面をスクロールしてからそれを元に戻すと...魔法が起こります!すべてのテキストはよく設定されています!私のアプリが冗談を言っているのですか、コードに本当の誤りがありますか?ListViewがアプリケーションのテキストを変更していません
activity_list.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.mancu_000.onclickmarkerlistener.ListActivity">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listview"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
ListActivity.java
package com.example.mancu_000.onclickmarkerlistener;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class ListActivity extends AppCompatActivity {
private ArrayList<String> data = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
ListView lv = (ListView) findViewById(R.id.listview);
generateListContent();
lv.setAdapter(new MyListAdapter(this, R.layout.list_layout, data));
}
private void generateListContent() {
int i = 0;
do {
data.add("This is the element number " + i);
i++;
} while (i < 55);
}
private class MyListAdapter extends ArrayAdapter<String> {
private int layout;
public MyListAdapter(Context context, int resource, List<String> objects) {
super(context, resource, objects);
layout = resource;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder mainViewHolder = null;
if(convertView == null) {
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(layout, parent, false);
ViewHolder viewHolder = new ViewHolder();
viewHolder.thumbnail = (ImageView) convertView.findViewById(R.id.list_item_thumbnail);
viewHolder.title = (TextView) convertView.findViewById(R.id.list_item_text);
viewHolder.button = (Button) convertView.findViewById(R.id.list_item_btn);
viewHolder.button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getContext(), "Button clicked for list item " + position, Toast.LENGTH_SHORT).show();
}
});
convertView.setTag(viewHolder);
}
else {
mainViewHolder = (ViewHolder) convertView.getTag();
mainViewHolder.title.setText(getItem(position));
}
return convertView;
}
}
public class ViewHolder {
ImageView thumbnail;
TextView title;
Button button;
}
}
list_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<ImageView
android:layout_width="65dp"
android:layout_height="65dp"
android:id="@+id/list_item_thumbnail"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:src="@mipmap/ic_launcher" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/list_item_text"
android:layout_toEndOf="@+id/list_item_thumbnail" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Okay"
android:id="@+id/list_item_btn"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>
S私はこの活動を開始したときに、O、これは画面上で起こるものです: First image
だから、私は、画面を下にスクロールして、再びそれをスクロールアップ...そして、ここに魔法です:Second image
してください助けてください、私はこの日から私の心を吹き飛ばしています!!
おかげで、これは完璧な作業です!あなたの助けを本当に感謝し、あなたは私の一日を作った! – Davide