首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

ListView中的每个条目怎么跳转到另外的Activity

2013-01-08 
ListView中的每个条目如何跳转到另外的Activity?listview布局中有16个条目(Item),如何实现每一个item都能

ListView中的每个条目如何跳转到另外的Activity?
listview布局中有16个条目(Item),如何实现每一个item都能跳转到另外的一个Activity,我是这么做的,但是没有反应,还请大家指点一下:代码是这些    GroupActivity.java

package com.test.listview;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;

public class GroupActivity extends Activity{
private ListView listView;
    private ListViewAdapter listViewAdapter;
    private List<Map<String, Object>> listItems;  
protected SharedPreferences group_sp;
    
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.group);

listView=(ListView)findViewById(R.id.group1_list);
listItems=getlistItems();
listViewAdapter=new ListViewAdapter(this, listItems);
listView.setAdapter(listViewAdapter);
listView.setTextFilterEnabled(true);

listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,long id) {
Log.i("mm", " onItemClick ");
Intent intent=new Intent();
switch(position){
case 0:
intent.setClass(getApplicationContext(), ListViewGroup.class);
GroupActivity.this.startActivity(intent);
break;
case 1:
intent.setClass(getApplicationContext(), ListViewGroup.class);
GroupActivity.this.startActivity(intent);
break;
case 2:
intent.setClass(getApplicationContext(), ListViewGroup.class);
GroupActivity.this.startActivity(intent);
break;
case 3:
intent.setClass(getApplicationContext(), ListViewGroup.class);
GroupActivity.this.startActivity(intent);
break;
case 4:
intent.setClass(getApplicationContext(), ListViewGroup.class);
GroupActivity.this.startActivity(intent);
break;
case 5:
intent.setClass(getApplicationContext(), ListViewGroup.class);
GroupActivity.this.startActivity(intent);
break;
case 6:
intent.setClass(getApplicationContext(), ListViewGroup.class);
GroupActivity.this.startActivity(intent);
break;
case 7:
intent.setClass(getApplicationContext(), ListViewGroup.class);
GroupActivity.this.startActivity(intent);
break;
case 8:
intent.setClass(getApplicationContext(), ListViewGroup.class);
GroupActivity.this.startActivity(intent);
break;
case 9:
intent.setClass(getApplicationContext(), ListViewGroup.class);
GroupActivity.this.startActivity(intent);
break;
case 10:
intent.setClass(getApplicationContext(), ListViewGroup.class);
GroupActivity.this.startActivity(intent);
break;
case 11:
intent.setClass(getApplicationContext(), ListViewGroup.class);
GroupActivity.this.startActivity(intent);
break;
case 12:


intent.setClass(getApplicationContext(), ListViewGroup.class);
GroupActivity.this.startActivity(intent);
break;
case 13:
intent.setClass(getApplicationContext(), ListViewGroup.class);
GroupActivity.this.startActivity(intent);
break;
case 14:
intent.setClass(getApplicationContext(), ListViewGroup.class);
GroupActivity.this.startActivity(intent);
break;
case 15:
intent.setClass(getApplicationContext(), ListViewGroup.class);
GroupActivity.this.startActivity(intent);
break;
}

}

});
}
    
private List<Map<String, Object>> getlistItems() {
 List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>();
 for(int i = 1; i<=16; i++) { 
 Map<String, Object> map = new HashMap<String, Object>();
             map.put("imageButton", R.drawable.goff1);                
             map.put("textView", "Group"+i);          
             map.put("imageView",R.drawable.arrow1);    
             listItems.add(map);   
}      
 return listItems;   
}
}

   

Adapter
package com.test.listview;

import java.util.List;
import java.util.Map;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;

public class ListViewAdapter extends BaseAdapter {
private Context context;                         //运行上下文
private List<Map<String,Object>> listItems;      //group列表
private LayoutInflater layoutInflater;           //视图容器
protected SharedPreferences group_sp;

/**自定义列表控件集合*/
public final class ListItemView{
public ImageButton imageButton;
public TextView textView;
public ImageView imageView;
}

public ListViewAdapter(Context context,List<Map<String,Object>> listItems){
this.context=context;
layoutInflater=LayoutInflater.from(context);//创建视图容器设置上下文
this.listItems=listItems;
}

public int getCount() {
return listItems.size();
}

public Object getItem(int position) {
return listItems.get(position);
}

public long getItemId(int position) {
return position;
}

/**list列表设置*/
public View getView(int position, View convertView, ViewGroup parent) {


// TODO Auto-generated method stub
convertView=layoutInflater.inflate(R.layout.group_list, null);
//获取空间对象
final ImageButton imageButton=(ImageButton)convertView.findViewById(R.id.goff1);
imageButton.setBackgroundResource(R.drawable.goff1);
imageButton.setOnClickListener(new View.OnClickListener() {
boolean flag=true;
public void onClick(View v) {
if(flag){
imageButton.setBackgroundResource(R.drawable.gon1);
flag=false;
}else{
imageButton.setBackgroundResource(R.drawable.goff1);
flag=true;
}

}


});
TextView textView=(TextView)convertView.findViewById(R.id.title);
ImageView imageView=(ImageView)convertView.findViewById(R.id.right_image);
//imageView.setOnClickListener(new View.OnClickListener() {
//
//@Override
//public void onClick(View v) {   
//Intent intent=new Intent(); 
//intent.setClass(context, ListViewGroup.class); 
//context.startActivity(intent);
//}
//});

//填充文字和图片
imageButton.setBackgroundResource((Integer)listItems.get(position).get("imageButton"));
textView.setText((String)listItems.get(position).get("textView"));
imageView.setBackgroundResource((Integer)listItems.get(position).get("imageView"));

//addListener(convertView);
return convertView;
}

}


[解决办法]
如果想在onItemClick开始Activity,不需要在每一行click中用switch case来跳转到新的Activity,用下面的代码代替你的:

listView.setOnItemClickListener(new OnItemClickListener() {  
   @Override   
   public void onItemClick(AdapterView<?> parent, View view                                                     , int position,long id) {      
   Log.i("mm", " onItemClick ");  
     Intent intent=new Intent(GroupActivity.this,ListViewGroup.class);           GroupActivity.this.startActivity(intent);     }  
 });

热点排行