기본적으로 이름과 전화번호를 입력한 값을 DB에 저장하고 그 리스트를 리스트 뷰로 보여주는데 까지는 구현하였습니다.
그 이후 리스트 item을 클릭하였을때 입력창으로 돌아가 선택한 정보가 editText에 보이도록 하고싶습니다.
현재는 Bundle로써 보내볼까 했는데 자꾸 null 값만 출력되서 Adapter를 사용해볼까 하여 ListViewAdapter 까지는 구현하였습니다.
입력창 쪽
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inputBtn = (Button) findViewById(R.id.inputBtn);
searchBtn = (Button) findViewById(R.id.searchBtn);
editName = (EditText) findViewById(R.id.editName);
editPhone = (EditText) findViewById(R.id.editPhone);
helper = new DBOpenHelper(this);
Bundle bundle = this.getIntent().getExtras();
String data1 = bundle.getString("name");
String data2 = bundle.getString("phone");
editName.setText(data1);
editPhone.setText(data2);
리스트뷰
listView = (ListView) findViewById(R.id.listView);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Bundle bundle = new Bundle();
bundle.putString("name", String.valueOf(listName));
bundle.putString("phone", String.valueOf(listPhone));
Intent intent = new Intent(ListActivity.this, LookActivity.class);
intent.putExtras(bundle);
startActivity(intent);
}
});
현재 구성된 listViewAdapter
public class ListViewAdapter extends ArrayAdapter<ListData> {
public ArrayList<ListData> items;
private LayoutInflater inflater = null;
String context = Context.LAYOUT_INFLATER_SERVICE;
LayoutInflater vi;
Context mContext;
public ListViewAdapter(Context context, int textViewResourceId, ArrayList<ListData> items) {
super(context, textViewResourceId, items);
this.inflater = LayoutInflater.from(context);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
vi = (LayoutInflater)mContext.getSystemService(context);
v = vi.inflate(R.layout.list_layout, null);
}
ListData listd = items.get(position);
if (listd != null) {
TextView listName = (TextView) v.findViewById(R.id.listName);
TextView listPhone = (TextView) v.findViewById(R.id.listPhone);
if (listName != null) {
listName.setText(listd.getName());
}
if (listPhone != null) {
listPhone.setText(listd.getPhone());
}
} return v;
}
}
어떻게 해야할까요 ㅠㅠ 부탁드립니다.