public class MainActivity extends AppCompatActivity {
private EditText editText;
private Button button;
private RecyclerView recyclerView;
private ArrayList<String> arrayList;
private AdapterActivity adt;
private List<List_Data> list;
private List_Data list_data;
private LinearLayoutManager layoutManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(activity_main);
editText = (EditText)findViewById(R.id.editText);
button = (Button)findViewById(R.id.button);
recyclerView = (RecyclerView)findViewById(R.id.recyclerView);
list = new ArrayList<>();
arrayList = new ArrayList<>();
adt = new AdapterActivity(this, list, R.layout.chat_room_list);
layoutManager = new LinearLayoutManager(MainActivity.this);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setFocusable(false);
recyclerView.setAdapter(adt);
try
{
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
int size = sharedPreferences.getInt("size", 0);
for(int i = 0; i<size; i++)
{
list_data = new List_Data(sharedPreferences.getString("num"+i, null));
list.add(list_data);
Log.i("List-size", String.valueOf(list.size()));
Log.i("List-text", String.valueOf(list_data));
adt.notifyDataSetChanged();
}
}
catch(Exception e)
{
Log.i("ERROR", e.toString());
}
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String text = editText.getText().toString();
list_data = new List_Data(text);
list.add(list_data);
arrayList.add(text);
adt.notifyDataSetChanged();
}
});
}
public String toString()
{
Log.i("toString", "Start");
return list.toString();
}
public void onPause()
{
super.onPause();
String text = "";
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("size", list.size());
for(int i = 0; i<list.size(); i++)
{
editor.putString("num"+i, list.get(i).toString());
}
Log.i("arrayList-size2", String.valueOf(list.size()));
Log.i("List-text2", String.valueOf(list));
editor.commit();
}
}
객체에 담긴 값을 toString하면 저장된 본래의 값이 아니라 com.foo.MyType@2f92e0f4 이런식으로
출력이 되는데 검색해보니 이를 막으려면 toString을 override 해줘여 한다던데요 위 코드에서와 같이 toString() 메소드 안에 Log를 찍어보았는데, 실행이 안되고 있습니다..;
어떻게하면 toString을 오버라이딩 해줘서 List 내에 값을 제대로 받을 수 있을까요???