리스트뷰를 클릭하면 클릭한 값이 다이얼로그에 뜨게 하고 싶습니다.

조회수 1309회

데이터베이스 쿼리문을 이용하여 에디트 텍스트에 입력하고 버튼을 누르면 저장하고, 리스트뷰에 추가되게 해놨습니다. 후에 리스트뷰를 누르면 다이얼로그가 뜨게 하는것까지 했는데, 클릭한 리스트뷰의 값을 다이얼로그에 뜨게 하고 싶습니다. (리스트뷰를 클릭하면 클릭된 리스트뷰의 값을 받아와 전화, 문자를 날리게 하는것이 목표입니다.)

   {
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setTitle("");
    builder.setMessage("");
    builder.setPositiveButton("전화",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    Intent dial = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:"));
                    startActivity(dial);
                }
            });
    builder.setNegativeButton("문자",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    Intent sms = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:"));
                    startActivity(sms);
                }
            });
    builder.show();
}

이 코드가 리스트뷰를 누르면 다이얼로그를 뜨게 하는 것이고 uri는 일단 구동만 되게 해놓은 상태입니다.

        {        
        String name = addTxt1.getText().toString();
        String info = addTxt2.getText().toString();
        if (name.equals("") || info.equals("")) {
        Toast.makeText(getApplicationContext(), "정보를 입력해 주세요", 
        Toast.LENGTH_SHORT).show();
        return;
        } else {
        db.execSQL("INSERT INTO tableName VALUES (null, '" + name + "', '" + info + "');");
        Toast.makeText(getApplicationContext(), "추가 성공", Toast.LENGTH_SHORT).show();

        addTxt1.setText(""); //입력시 EditText에 입력된값 지움
        addTxt2.setText("");
        cursor = db.rawQuery("SELECT * FROM tableName", null);
        startManagingCursor(cursor);    //엑티비티의 생명주기와 커서의 생명주기를 같게 한다.

        adapter = new ArrayAdapter<String>(Main2Activity.this, android.R.layout.simple_list_item_1);
        adapter2 = new ArrayAdapter<String>(Main2Activity.this, android.R.layout.simple_list_item_1);

        while (cursor.moveToNext()) {
            adapter.add(cursor.getString(1));
            adapter2.add(cursor.getString(2));
        }


        listView.setAdapter(adapter);
        listView2.setAdapter(adapter2);

    }
}

이 코드는 addtxt에 입력하고 버튼을 누르면 DB에 저장하고 리스트뷰에 추가하는 코드입니다. builder.setTitle(""); builder.setMessage(""); 부분에 어떻게 넣어야 선택한 리스트뷰 값을 불러 올 수 있을까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)