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

listView에 putExtra 설정시...

0 추천
나만의 메모장을 만들고있는데요..

제가 넣고싶은 거는 리스트에 파일목록 쫘악 나올 때 해당 터치로 데이터 송신해서 다른 액티비티에 그 데이터를 받고 화면에 출력하는 방식으로 하고 싶은데 도저히 감이 안오네요 ㅠㅠ

보내는쪽 액티비티

MainActivity.java

listview2.setOnItemClickListener(new OnItemClickListener() { // 리스트뷰 터치시 이벤트 발생

   @Override
   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    // TODO Auto-generated method stub
    intent = new Intent(MainActivity.this, Sub2_MainActivity.class);
    intent.putExtra("data", list1.get(position)); // 제목을 보낸다.
    intent.putExtra("str", list2.get(position)); // 내용을 보낸다.
    startActivity(intent);
   }  
   
  });

 

받는 쪽 액티비티

 Sub2_MainActivity

public class Sub2_MainActivity extends Activity {
 Intent intent;
 TextView text1, text2;
 
  
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.sub2_activity);
  
  text1=(TextView)findViewById(R.id.text_Title);
  text2=(TextView)findViewById(R.id.text_Memo);
  
  intent=getIntent();
  
  text1.setText(intent.getStringExtra("data").toString()); // 제목을 받아서 출력
  text2.setText(intent.getStringExtra("str").toString()); // 내용을 받아서 출력
 }

}

 

메인 액티비티에 리스트뷰 터치누를시 중지 에러뜹니다.

어디가 잘 못 됫는지 ㅠㅠ

더 원하신다면 이메일로 보내드리겠습니다.
김응호 님이 2015년 9월 19일 질문

2개의 답변

0 추천

    intent.putExtra("data", list1.get(position)); // 제목을 보낸다.
    intent.putExtra("str", list2.get(position)); // 내용을 보낸다.

여기서 보낸 데이터의 자료형대로 받는쪽에서 동일한 자료형으로 받으셔야 합니다.

putExtra 는 넘겨주는 데이터의 자료형에 따라 정해지기 때문에 받을때도 자료형에 맞게 받아야합니다.

 

하늘아륑 (16,800 포인트) 님이 2015년 9월 19일 답변
간단한 예시 소스로 만들어줄수없나요??
0 추천

하늘아륑님이 말씀하신것처럼 동일한 자료형을 체크해보세요.

 

작성자분의 코드를 보시면

list1, list2의 타입이 뭔가요?

 

아래와 같이

ArrayList<String> list1;

ArrayList<String> list2;

(예를 들어 ArrayList로 작성하였습니다.)

이렇게 선언하셨다면 getStringExtra로 받기 때문에 문제가 없는 것으로 보이나.

자료형이 다른 것이라면 에러가 납니다.

 

taejun (7,240 포인트) 님이 2015년 9월 21일 답변
...