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

edit텍스트로 입력한값을 리스트뷰에 넣고 그값을 다음액티비티로 넘기려하는데 ㅠ

0 추천
public class MainActivity extends AppCompatActivity {

    ListView listView;
    ArrayList<String> list = new ArrayList<String>();
    Button btnAdd;
    Button btnDel;
    Button btnSelect;
    ArrayAdapter<String> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listView = (ListView) findViewById(R.id.listView1);
        btnAdd = (Button) findViewById(R.id.btnAdd);
        btnDel = (Button) findViewById(R.id.btnDel);
        btnSelect = (Button) findViewById(R.id.btnSelect);

        //어댑터객체 생성
        adapter = new ArrayAdapter<String>(this,//Context객체
                android.R.layout.simple_list_item_single_choice,//보여질레이아웃형태
                list //보여질데이터를 담고있는 배열
        );

        //하나의 항목을 선택할 수 있는 모드 설정
        listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

        //어댑터와 리스트뷰 연결하기
        listView.setAdapter(adapter);

        //항목을 선택했을때 수행할 동작 처리(이벤트 처리)
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent,//이벤트가 발생된 뷰
                                    View v,//이벤트가 발생된 차일드 뷰
                                    int position,//이벤트가 발생된 항목의 위치
                                    long id//이벤트가 발생된 뷰 id
            ) {
                //ArrayList에서 position에 해당하는 데이터 얻어오기
                String item = list.get(position);
                //토스트로  출력하기
                Toast.makeText(MainActivity.this,
                        "선택항목:" + item,
                        Toast.LENGTH_SHORT).show();
            }
        });

        final EditText edt = (EditText) findViewById(R.id.edt1);

        //버튼을 눌렀을때 입력된 항목 추가하기
        btnAdd.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //입력된 문자열 얻어오기
                String str = edt.getText().toString();
                //입력된 값을 ArrayList에 추가하기
                list.add(str);
                //모델객체가 변경되었음을 어댑터뷰에 알리기
                adapter.notifyDataSetChanged();
                //입력된 값 지우기
                edt.setText("");
            }
        });

        btnDel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //선택된 항목의 인덱스 얻어오기
                int pos = listView.getCheckedItemPosition();
                //ArrayList에서 항목 지우기
                list.remove(pos);
                //어댑터에 항목이 바뀜을 알리기
                adapter.notifyDataSetChanged();
                //선택한 항목표시 없애기
                listView.clearChoices();
            }
        });
      btnSelect.setOnClickListener(new View.OnClickListener() {
에딧텍스트로 추가 삭제버튼을 누르면 리스트뷰에 목록에 추가되고 삭제되는 것까지 작성햇는데
여기에 뽑기 버튼을 누르면 리스트뷰에 추가된 목록들을 다음 액티비티로 가져가서
목록 중 임의의 값을 하나 출력해내야하는데 다음 액티비티로 넘기는 방법을 도저히 모르겟네요 ㅜ
인텐트 사용해서 어떻게 다음 액티비티로 옮기는지좀 알려주시면 감사하겠습니다
kyung214 (120 포인트) 님이 2016년 12월 1일 질문

1개의 답변

0 추천

안녕하세요

입력된 값이 list 변수에 있으니 이렇게 넘기시면 될듯합니다.

Intent intent = new Intent(MainActivity.this, 이동할 클래스);
intent.putStringArrayListExtra("LIST", list);
startActivity(intent);
히로시 (10,800 포인트) 님이 2016년 12월 2일 답변
댓글달아주셔서 정말감사합니다. ㅜ
근데.. 혹시..죄송한데.. 다른화면에서 받는건 어떻게받나요,,?
Intent intent = getIntent();
        String[] list = intent.getStringArrayListExtra("LIST");
이런식으로 하니 오류가뜨는데.. ㅜ
...