마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

ListView 에서 onItemClick에 대하여 질문입니다.

0 추천

기본적으로 이름과 전화번호를 입력한 값을 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;
    }
}
어떻게 해야할까요  ㅠㅠ 부탁드립니다. 
익명사용자 님이 2016년 3월 26일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...