私はカスタムリストアダプターでリストビューを使用しています。キーボードが表示されるまで、Androidのリストビューに空のデータが表示されますか?
「+」ボタンをクリックすると、リスト項目が動的に追加されます。すべてのリスト項目には4つのEditTextが含まれています。
最初のリスト項目は正しいデータを示していますが、他の項目の右端のEditTextは空です。
これは、あなたが最後の編集テキストが最初のリスト項目を除いて、空のデータを示す見ることができる問題
です。この問題は、キーボードが表示された後に解決されます。
は、ソフトキーボードに
を開いた後、私はadapter.notifyDataSetChanged()
とlist.invalidateViews()
を使用してみましたが、今働いていました。
どうすればこの問題を解決できますか?
のonCreate()
Vector v;
CreateExerciseAdapter adapter;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_workout);
v = new
adapter = new CreateExerciseAdapter(v,this);
txtName = (EditText)findViewById(R.id.editTextName);
list = (ListView)findViewById(R.id.listView2);
//listview footer button (Add new button)
LayoutInflater inflater = LayoutInflater.from(this);
View inflate = inflater.inflate(R.layout.create_exercise_item, null);
ImageButton btnAddNew = (ImageButton) inflate.findViewById(R.id.imageButtonAddNew);
list.addFooterView(inflate);
btnAddNew.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
View item = LayoutInflater.from(view.getContext())
.inflate(R.layout.create_new_exercise_item, null);
v.add(item);
adapter.notifyDataSetChanged();
}
});
list.setAdapter(adapter);
}
が:-)
をいただき、ありがとうございます更新
アダプタ
public class CreateWorkoutListAdapter extends BaseAdapter {
Context context;
Vector vector;
LayoutInflater inflater = null;
FontManager fm;
public CreateWorkoutListAdapter(Context context, Vector vector){
this.context = context;
this.vector = vector;
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return vector.size();
}
@Override
public Object getItem(int position) {
return vector.elementAt(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View view, ViewGroup viewGroup) {
view = inflater.inflate(R.layout.create_new_exercise_item, null);
final EditText txtName = (EditText)view.findViewById(R.id.editTextExerciseName);
final EditText txtReps = (EditText)view.findViewById(R.id.editTextReps);
final EditText txtMin = (EditText)view.findViewById(R.id.editTextMin);
final EditText txtSec = (EditText)view.findViewById(R.id.editTextSecond);
return view;
}
}
何?アダプターコードも記入してください。 –
@NIkaKurdadze:ありがとう。私は質問を更新しました – Malinda
あなたはもっと詳しく問題について話すことができますか?追加された項目は表示されていますか? 「この問題は、キーボードが表示された後に解決されます」という意味ではどういう意味ですか? –