IM スタイル ページを含むアプリがあり、テキストはカスタム リストビューを使用して表示されます
アクティビティを終了して戻ってきたときに、すべてのデータを含むリストビューを引き続き表示したいと考えています。これまでのところ、onSavedInstance と onRestoredInstance を使用して arraylist の内容を保存してから、onRestoredInstance でアダプターを再度設定しようとしましたが、うまくいきません。
私の活動のコードは次のとおりです。
private ArrayList<String> nameList = new ArrayList<String>();
private ArrayList<String> messageList = new ArrayList<String>();
private ArrayList<String> timeList = new ArrayList<String>();
Button send = (Button) findViewById(R.id.chat_send);
EditText send = (EditText) findViewById(R.id.edit_text);
ListView chat_list = (ListView) findViewById(R.id.chat_list);
MyCustomArrayAdapter myArrayAdapter = new MyCustomArrayAdapter(this, messageList, nameList,
timeList, receiverName, senderName, language_chosen);
chat_list.setAdapter(myArrayAdapter);
send.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String new_text = edit_text.getText().toString();
String sys_time = new Time(System.currentTimeMillis())
.toString();
timeList.add(sys_time);
messageList.add(new_text);
nameList.add(username);
myArrayAdapter.notifyDataSetChanged();
chat_list.setSelection(chat_list.getChildCount()-1);
}
});
そして、これが私のアダプターのコードです
public MyCustomArrayAdapter(Context context, ArrayList<String> planetList,
ArrayList<String> NameList, ArrayList<String> TimeList,
String receiver, String sender, String language) {
super(context, R.layout.custom_chat_layout, planetList);
this.context = context;
messageList = planetList;
nameList = NameList;
timeList = TimeList;
receiverName = receiver;
senderName = sender;
language_chosen = language;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
holder = new ViewHolder();
rowView = inflater.inflate(R.layout.custom_chat_layout, parent, false);
holder.chat_name = (TextView) rowView
.findViewById(R.id.custom_chat_name);
holder.chat_time = (TextView) rowView
.findViewById(R.id.custom_chat_timestamp);
holder.chat_text = (TextView) rowView
.findViewById(R.id.custom_chat_text);
holder.chat_name.setText(nameList.get(position));
holder.chat_time.setText(timeList.get(position));
holder.chat_text.setText(messageList.get(position));
return rowView;
}
static class ViewHolder {
TextView chat_name;
TextView chat_time;
TextView chat_text;
RelativeLayout relative;
RelativeLayout relative1;
}