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

putExtra 관련 / 자료를 못읽는건지 못주는건지 모르겠습니다.

0 추천

-------------------------------------------------------------------------------------------------------------------------

MainActivity.java

public class MainActivity extends Activity {
 TextView tv;
 ImageView iv;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main); 
 }
 
    public void startSecond(View v) {
     Intent i = new Intent(MainActivity.this, SecondActivity.class);     
     startActivityForResult(i,0);
    }  
  
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
     if(resultCode==RESULT_OK){
     if(requestCode==1){  
     TextView tv = (TextView) findViewById(R.id.textView1);
     ImageView iv = (ImageView) findViewById(R.id.imageView1);
    
     Intent intent = getIntent();
     int imgsinger = intent.getIntExtra("image",0);
     String namesinger = intent.getStringExtra("name");
    
     iv.setImageResource(imgsinger);
     tv.setText(namesinger);

     }
 }
}

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }
}

 

-------------------------------------------------------------------------------------------------------------------

public class SecondActivity extends Activity implements OnItemClickListener {

 ArrayList<Singer> singer = new ArrayList<Singer>();
 ListView listview;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_second);
        SingerAdapter adapter= new SingerAdapter(getLayoutInflater(), singer);

    singer.add(new Singer(R.drawable.aoa, "AOA", "010-2222-5678"));
    singer.add(new Singer(R.drawable.gfriend, "Gfriend", "010-2222-5678"));
    singer.add(new Singer(R.drawable.girlsday, "GirlsDay", "010-2222-5678"));;
    singer.add(new Singer(R.drawable.lovelyz, "Lovelyz", "010-2222-5678"));
    singer.add(new Singer(R.drawable.mamamoo, "mamamoo", "010-2222-5678"));
    listview = (ListView) findViewById(R.id.listView1);   
    listview.setAdapter(adapter);
       listview.setOnItemClickListener(this);
 }
 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Intent intent = new Intent();

     intent.putExtra("image",singer.get(position).getimgid());
     intent.putExtra("name",singer.get(position).imgid);

        setResult(RESULT_OK, intent); 
     finish();
        }

 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.second, menu);
  return true;
 }
}

 

-------------------------------------------------------------------------------------------------------------------

class Singer {
 int imgid; //가수 이미지
 String name; //가수 이름
 String phnum; //가수 전화
 

public Singer(int imgid, String name, String phnum) {
 this.imgid=imgid;
 this.name=name;
 this.phnum=phnum;
}
 public void setimgid(int imgid){
  this.imgid=imgid;
 }

 public void setname(String name){
  this.name=name;
 }

 public void setphnum(String phnum){
  this.phnum=phnum;
 }


 public int getimgid(){
  return imgid;
 }

 public String getname(){
  return name;
 }

 public String getphnum(){
  return phnum;
 }
}

-------------------------------------------------------------------------------------------------------------------

public class SingerAdapter extends BaseAdapter {
 
  ArrayList<Singer> singer;
  LayoutInflater inflater;

  public SingerAdapter(LayoutInflater inflater, ArrayList<Singer> singer) {
   this.singer = singer;
   this.inflater= inflater;
  }

  @Override
  public int getCount() {
   // TODO Auto-generated method stub
  return singer.size();
  }

  @Override
  public Object getItem(int position) {
   // TODO Auto-generated method stub
  return singer.get(position);
  }

  @Override
  public long getItemId(int position) {
   // TODO Auto-generated method stub
  return position;
  }

 @Override
  public View getView(int position, View convertView, ViewGroup parent) {
   // TODO Auto-generated method stub
   if(convertView==null){ convertView= inflater.inflate(R.layout.singer, null);  
   }
   ImageView singerimg = (ImageView)convertView.findViewById(R.id.icon);
   TextView singername = (TextView)convertView.findViewById(R.id.name);
   TextView singerphone = (TextView)convertView.findViewById(R.id.phnum);

   singername.setText(singer.get(position).getname());
   singerphone.setText(singer.get(position).getphnum());
   singerimg.setImageResource(singer.get(position).getimgid());
   return convertView;
  }
}

parkis (120 포인트) 님이 2016년 5월 21일 질문

1개의 답변

0 추천

startActivityForResult(i,0);

이 부분에서 인텐트 뒤의 인자는 requestCode 입니다.

onActivityResult에서 분기 처리할때 requestCode 를 0으로 바꿔보세요.

 

캬옹이 (37,920 포인트) 님이 2016년 5월 23일 답변
혹시      intent.putExtra("image",singer.get(position).getimgid());
     intent.putExtra("name",singer.get(position).imgid);부분이 맞는건지 알수있을까요

앞은 수정을했는데 뒤에서 사진을 못넘기는것같네요..
...