2014-04-20 4 views
0

나는 이미지 아이콘과 제목과 간단한 목록보기를 데에 대한 모든있는 ListViewItem. 이제 listItem을 클릭 할 때마다이 listitem을 다른 활동으로 보내야합니다. Activity1, Activity2, Activity3 등등 ... 나는 많은 답변을 읽었지만 이에 대한 더 나은 해결책을 찾을 수 없습니다.표시 다른 다른 활동

Intent i = new Intent(this, Activity1.class); 
i.putExtra("image", images[position]); 
i.putExtra("title", titleArray[position]); 
startActivity(i); 

와 같은 다른 활동에 검색 : - - : 내 주요 활동 :

public class MainActivity extends Activity implements 
AdapterView.OnItemClickListener { 

ListView list; 
String [] memeTitles; 
String [] memeDescriptions; 
int [] images = {R.drawable.img0,R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img4,R.drawable.img5}; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Resources res = getResources(); 
    memeTitles = res.getStringArray(R.array.titles); 

    list = (ListView)findViewById(R.id.listView1); 
    VivzAdapter adapter = new VivzAdapter(this, memeTitles, images,  memeDescriptions); 
    list.setAdapter(adapter); 
} 
@Override 
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
    // TODO Auto-generated method stub 


    // i created this activity for first listview item but it's not working 
     // other Activity class name = Activity1 

     Intent i = new Intent(this, Activity1.class); 
     startActivity(i); 
    } 
    } 
    class VivzAdapter extends ArrayAdapter<String> 
    { 
Context context; 
String[] titleArray; 

int [] images; 
VivzAdapter(Context c, String[] titles, int imgs[], String[] desc) 
{ 
    super(c, R.layout.single_row, R.id.textView1, titles); 
    this.context= c; 
    this.images=imgs; 
    this.titleArray= titles; 
// this.descriptionArray = desc; 
} 
@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    View row = convertView ; 
    if (row == null) 
    { 
    LayoutInflater inflater = (LayoutInflater)context.getSystemService(context.LAYOUT_INFLATER_SERVICE); 
    row = inflater.inflate(R.layout.single_row, parent, false); 
    } 
    ImageView myImage = (ImageView) row.findViewById(R.id.imageView1); 
    TextView myTitles = (TextView) row.findViewById(R.id.textView1); 

    myImage.setImageResource(images[position]); 
    myTitles.setText(titleArray[position]); 
    return row; 
    } 
    } 

답변

0

는이 같은 의도에서 값을 둘 필요가

Bundle extras = getIntent().getExtras(); 
if(extras != null) { 
    String titlenewString= extras.getString("title"); 
    int imageName = extras.getInt("image"); 
} 
+0

언급 한대로 코드를 추가했지만 아무런 문제가 없습니다. \t 의도 i = 새로운 의도 (this, Activity1.class); \t \t i.putExtra ("이미지"의 이미지 [0]); \t \t i.putExtra ("제목", memeTitles [0]); \t \t startActivity (i); – user3541685

+0

당신은 그렇지 않으면 활동 기준을받지 않습니다 또한이 작업을 수행 할 필요가, 인터페이스를 구현할 때 당신이 당신의 activity1에 –

+0

의 코드 내 하반기을 추가했다. 'list.setOnItemClickListener (this); '. 이 행을 setAdapter 행 아래에 작성하십시오 –

0

당신은 할 수 실제로 라훌 (Rahul)이 제안한 것처럼 다른 특성을 다른 분야에 넣었다.

전체보기를 보낼 수있는 또 다른 방법은 ListItem의보기를 확장하고 사용자 정의 Parcable을 구현하는 사용자 지정보기를 만드는 것입니다. 당신이 putParcable(String key, Parcable object)

+0

코드를 적용했지만 목록 항목을 클릭해도 아무런 변화가 없습니다. – user3541685

+0

코드를 보면 정확히 어디에서 OnItemClickListener를 ListView에 할당합니까? 저 보정 – TmKVU

+0

감사 4는 이제 list.setOnItemClickListener (이)를 첨가했다; 이 줄 아래 , list.setAdapter (adapter); 하지만 지금 목록 항목을 클릭하면 내 앱이 손상됩니다! "i"는 "int i"이고 "intent i"는 일치하는 오류입니다. – user3541685

0

와 의도에 넣을 수있는 것보다 단지 list.setOnItemClickListener (이)를 호출; , 당신은 리스너가 작동하지 않는 이유를 설정하지 않습니다.