Android 从适配器类向新活动传递数据

Android 从适配器类向新活动传递数据,android,listview,android-intent,baseadapter,Android,Listview,Android Intent,Baseadapter,我制作了一个带有图像和文本的自定义列表视图。当你点击图像时,它会引导你进入新的活动。现在我想将图像和文本传递给新的活动。我知道使用putExtra方法你可以传递数据,但我不知道如何在这里使用它。。 先谢谢你。。。 这是我的适配器类的代码 注意..我正在解析来自json的数据 Onclick方法用于进行另一项活动 public class Adapter extends BaseAdapter { private static final String TAG = "Adapter"; pri

我制作了一个带有图像和文本的自定义列表视图。当你点击图像时,它会引导你进入新的活动。现在我想将图像和文本传递给新的活动。我知道使用putExtra方法你可以传递数据,但我不知道如何在这里使用它。。 先谢谢你。。。 这是我的适配器类的代码

注意..我正在解析来自json的数据

Onclick方法用于进行另一项活动

 public class Adapter extends BaseAdapter {

private static final String TAG = "Adapter";
private Activity mActivity;
public ArrayList<Data> mObjects;
// /private final Context context;
Context context;

static class ViewHolder {
    static ImageView icon;
    TextView title;
    TextView name;
    TextView review;
    DownloadImageTask mTask;
    String ab[];
    // DownloadImageTask1 mTask1;
    // ImageView photo;
}

public Adapter(Activity activity, Context context, ArrayList<Data> mObjects) {

    this.mActivity = (Activity) activity;
    this.context = context;
    this.mObjects = mObjects;

}

public void setObjects(ArrayList<Data> mObjects) {
    this.mObjects = mObjects;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {

    Data item = mObjects.get(position);
    View rowView = convertView;

    if (rowView == null) {
        LayoutInflater inflater = mActivity.getLayoutInflater();
        rowView = inflater.inflate(R.layout.item, parent, false);
        ViewHolder viewHolder = new ViewHolder();
        viewHolder.icon = (ImageView) rowView.findViewById(R.id.image);
        // viewHolder.photo = (ImageView) rowView.findViewById(R.id.photo);
        viewHolder.title = (TextView) rowView.findViewById(R.id.title);
        viewHolder.name = (TextView) rowView.findViewById(R.id.name);

        viewHolder.review = (TextView) rowView.findViewById(R.id.status);
        rowView.setTag(viewHolder);
    }

    ViewHolder holder = (ViewHolder) rowView.getTag();

    holder.title.setText(item.getmTitle());
    holder.name.setText(item.getmConcatinate());

    holder.review.setText(item.getmreview());
    holder.icon.setBackgroundResource(R.drawable.ic_ab);
    // holder.photo.setBackgroundResource(0);
    holder.mTask = new DownloadImageTask(item.getmImageUrl(), holder.icon);
    if (!holder.mTask.isCancelled()) {
        holder.mTask.execute();
    }

    ViewHolder.icon.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Log.d("Parsing JSON Data", "Before user try122222"); // perform
                                                                    // action
            Intent intent = new Intent(v.getContext(), LargeView.class);

            v.getContext().startActivity(intent);

        }
    });

    // holder.mTask1 = new DownloadImageTask1(item.getmImageUrl1(),
    // holder.photo);
    // if (!holder.mTask1.isCancelled()) {
    // holder.mTask1.execute();
    // }

    return rowView;
}

@Override
public int getCount() {

    return (this.mObjects.size());
}

@Override
public Object getItem(int position) {

    return (this.mObjects.get(position));
}

@Override
public long getItemId(int position) {

    return (position);
}

public AbsListView.RecyclerListener mRecyclerListener = new RecyclerListener() {

    public void onMovedToScrapHeap(View view) {
        ViewHolder viewHolder = (ViewHolder) view.getTag();
        DownloadImageTask imagetask = viewHolder.mTask;
        // DownloadImageTask1 imagetask1 = viewHolder.mTask1;
        if (imagetask != null) {
            imagetask.cancel(true);
        }
        // if (imagetask1 != null) {
        // // imagetask1.cancel(true);
        // }
    }

};
公共类适配器扩展了BaseAdapter{
私有静态最终字符串TAG=“Adapter”;
私人活动能力;
公共阵列列表对象;
///私人最终上下文;
语境;
静态类视窗夹{
静态图像视图图标;
文本视图标题;
文本视图名称;
文本视图审查;
下载图像任务mTask;
字符串ab[];
//下载ImageTask1 mTask1;
//ImageView照片;
}
公共适配器(活动、上下文上下文、ArrayList移动对象){
this.mActivity=(活动)活动;
this.context=上下文;
this.mObjects=mObjects;
}
公共void setObjects(ArrayList mObjects){
this.mObjects=mObjects;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
数据项=mObjects.get(位置);
视图行视图=转换视图;
if(rowView==null){
LayoutInflater充气机=mActivity.getLayoutInflater();
rowView=充气机。充气(R.layout.item,父项,false);
ViewHolder ViewHolder=新ViewHolder();
viewHolder.icon=(ImageView)rowView.findviewbyd(R.id.image);
//viewHolder.photo=(ImageView)rowView.findviewbyd(R.id.photo);
viewHolder.title=(TextView)rowView.findViewById(R.id.title);
viewHolder.name=(TextView)rowView.findViewById(R.id.name);
viewHolder.review=(TextView)rowView.findViewById(R.id.status);
rowView.setTag(viewHolder);
}
ViewHolder=(ViewHolder)rowView.getTag();
holder.title.setText(item.getmTitle());
holder.name.setText(item.getmconcat());
holder.review.setText(item.getmreview());
持有者。图标。挫折资源(R.可绘制。ic_ab);
//持有者。照片。挫折资源(0);
holder.mTask=new DownloadImageTask(item.getmImageUrl(),holder.icon);
如果(!holder.mTask.isCancelled()){
holder.mTask.execute();
}
ViewHolder.icon.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
Log.d(“解析JSON数据”,“在用户try122222之前”);//执行
//行动
Intent Intent=newintent(v.getContext(),LargeView.class);
v、 getContext().startActivity(意图);
}
});
//holder.mTask1=新下载的ImageTask1(item.getmImageUrl1(),
//持有人(照片);
//如果(!holder.mTask1.isCancelled()){
//holder.mTask1.execute();
// }
返回行视图;
}
@凌驾
public int getCount(){
返回(this.mObjects.size());
}
@凌驾
公共对象getItem(int位置){
return(this.mObjects.get(position));
}
@凌驾
公共长getItemId(int位置){
返回(位置);
}
public AbsListView.RecyclerListener mRecyclerListener=新的RecyclerListener(){
移动Oscrapheap上的公共无效(视图){
ViewHolder ViewHolder=(ViewHolder)view.getTag();
下载imagetask imagetask=viewHolder.mTask;
//下载imagetask1 imagetask1=viewHolder.mTask1;
if(imagetask!=null){
imagetask.cancel(true);
}
//如果(imagetask1!=null){
////imagetask1.cancel(true);
// }
}
};
main activity.class中的代码

     @Override
protected void onCreate(Bundle savedInstanceState) {
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
            .detectAll().penaltyLog().build();
    StrictMode.setThreadPolicy(policy);

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_profile3);

    name = (TextView) findViewById(R.id.textView1);
    bmImage2 = (ImageView) findViewById(R.id.imageView1);
    address = (TextView) findViewById(R.id.textView2);
    gender = (TextView) findViewById(R.id.textView3);
    loyalitypoints = (TextView) findViewById(R.id.textView7);
    followers = (TextView) findViewById(R.id.textView8);
    following = (TextView) findViewById(R.id.textView9);
    // list13 = new ArrayList<HashMap<String, Object>>();
    mListView = (ListView) findViewById(android.R.id.list);
    mListView.setClickable(true);






    // mListView=(ListView)findViewById(R.id.list);
    mAdapter = new Adapter(this,c,mSource );
    mListView.setAdapter(mAdapter);
    Log.w("Parsing JSON Data", "Before Item click");

    mListView.setRecyclerListener(mAdapter.mRecyclerListener);

 }


        public String getJSONfromURL(String url) {
    InputStream is = null;
    String result = "";

    // http post
    try {
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(url);
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        is = entity.getContent();

    } catch (Exception e) {
        Log.e("log_tag", "Error in http connection " + e.toString());
    }

    // convert response to string
    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(
                is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        result = sb.toString();

    } catch (Exception e) {
        Log.e("log_tag", "Error converting result " + e.toString());
    }
    return result;
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
StrictMode.ThreadPolicy policy=新建StrictMode.ThreadPolicy.Builder()
.detectAll().penaltyLog().build();
StrictMode.setThreadPolicy(策略);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile3);
name=(TextView)findViewById(R.id.textView1);
bmImage2=(ImageView)findViewById(R.id.imageView1);
地址=(TextView)findViewById(R.id.textView2);
性别=(TextView)findViewById(R.id.textView3);
忠诚点数=(TextView)findViewById(R.id.textView7);
followers=(TextView)findViewById(R.id.textView8);
following=(TextView)findViewById(R.id.textView9);
//list13=新的ArrayList();
mListView=(ListView)findViewById(android.R.id.list);
mListView.setClickable(true);
//mListView=(ListView)findViewById(R.id.list);
mAdapter=新适配器(this、c、mSource);
mListView.setAdapter(mAdapter);
w(“解析JSON数据”,“在单击项之前”);
mListView.setRecyclerListener(mAdapter.mRecyclerListener);
}
公共字符串getJSONfromURL(字符串url){
InputStream=null;
字符串结果=”;
//http post
试一试{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(url);
HttpResponse response=httpclient.execute(httppost);
HttpEntity=response.getEntity();
is=entity.getContent();
}捕获(例外e){
e(“Log_标记”,“http连接错误”+e.toString());
}
//将响应转换为字符串
试一试{
BufferedReader reader=新的BufferedReader(新的InputStreamReader(
is,“iso-8859-1”),8);
StringBuilder sb=新的StringBuilder();
字符串行=null;
而((line=reader.readLine())!=null){
sb.追加(第+行“\n”);
}
is.close();
结果=sb.toString();
}捕获(例外e){
Log.e(“Log_标记”,“错误转换结果”+e.toString());
}
返回结果;
}
使用以下方法:

ViewHolder.icon.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Log.d("Parsing JSON Data", "Before user try122222"); // perform
                                                                    // action
            Intent intent = new Intent(context, LargeView.class);
            intent.putExtra("name", "dhaval");
            context.startActivity(intent);

        }
    });
在意图中传递图像是个坏主意。只需传递URL、图像路径、图像名称等等
Intent intent = new Intent(context, LargeView.class);
intent.putExtra("name", "dhaval");
intent.putExtra("imangeUTL", "www.xyz.com/images/test.png");
context.startActivity(intent);