Android 在栅格视图中更改视图

Android 在栅格视图中更改视图,android,gridview,view,Android,Gridview,View,我在活动A中的gridview中有视图。在活动B中,如果发生某些操作,我想在gridview中的视图上添加一些复选标记。当我回到活动A时,我想在同一个网格视图中显示这个视图,上面有一个小复选标记。我该怎么做 这是我的活动,包含网格视图 public class LogoSelectionActivity extends Activity { static int pos; @Override protected void onCreate(Bundle savedInstanceState)

我在活动A中的gridview中有视图。在活动B中,如果发生某些操作,我想在gridview中的视图上添加一些复选标记。当我回到活动A时,我想在同一个网格视图中显示这个视图,上面有一个小复选标记。我该怎么做

这是我的活动,包含网格视图

public class LogoSelectionActivity extends Activity {


static int pos;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list_logos);



    GridView gridview = (GridView) findViewById(R.id.gridview);
    gridview.setAdapter(new ImageAdapter(this));


    gridview.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
            pos = position;

            if(ImageAdapter.items[position] == 0){
                Intent intent = new Intent(LogoSelectionActivity.this, LogoActivity.class);
                intent.putExtra ("clicked_position", position);
                startActivity(intent);
            }else{

                Intent intent = new Intent(LogoSelectionActivity.this, CorrectActivity.class);
                startActivity(intent);
            }
        }
    });
}

如果a返回true,当用户返回到第一个活动时,我想在网格视图中的视图上打一个小复选标记。

网格视图使用来自适配器的数据。您必须更改适配器的数据,并通知适配器数据已更改。然后,更新方法可以处理Gridview中的CANGE。也许这个例子可以帮助您继续:

为了让活动A对活动B中的操作做出反应,我认为您可能需要了解意图和意图过滤器:

否则,请提供一些代码供我们评论。

请尝试此代码

package com.shreeexample.grid;

import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class ImageAdapter extends BaseAdapter{

    private Context context;
    int checked=0;
    private final String[] mobileValues;
    public ImageAdapter(Context context, String[] mobileValues) {
        this.context = context;
        this.mobileValues = mobileValues;
    }

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

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

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

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

        final ImageView img_select;
        final int selectedPosition = -1; 

        LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View gridView;

        if (convertView == null) {

            gridView = new View(context);

            // get layout from mobile.xml
            gridView = inflater.inflate(R.layout.two, null);

            // set value into textview
            TextView textView = (TextView) gridView
                    .findViewById(R.id.grid_item_label);
            textView.setText(mobileValues[position]);

            // set image based on selected text
            ImageView imageView = (ImageView) gridView
                    .findViewById(R.id.grid_item_image);
            img_select = (ImageView)gridView.findViewById(R.id.grid_item_image_select);

            String mobile = mobileValues[position];

            if (mobile.equals("Windows")) {
                imageView.setImageResource(R.drawable.ic_launcher);
            } else if (mobile.equals("iOS")) {
                imageView.setImageResource(R.drawable.ic_launcher);
            } else if (mobile.equals("Blackberry")) {
                imageView.setImageResource(R.drawable.ic_launcher);
            } else {
                imageView.setImageResource(R.drawable.ic_launcher);
            }

            imageView.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    img_select.setFocusable(true);
                    img_select.setEnabled(true);
                    if(checked==0)
                    {

                        img_select.setBackgroundResource(android.R.drawable.btn_plus);


                    checked =1;
                }
                else
                {
                    img_select.setBackgroundResource(0);
                    checked=0;
                }


                }
            });

        } else {
            gridView = (View) convertView;
        }

        return gridView;
    }
}
为此,做一个这样的布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/grid_item_image"
        android:layout_width="50px"
        android:layout_height="50px"
        android:layout_marginRight="10px"
        android:src="@drawable/ic_launcher" >
    </ImageView>
    <ImageView
        android:id="@+id/grid_item_image_select"
        android:layout_width="50px"
        android:layout_height="50px"
        android:layout_marginRight="10px"
        android:src="@drawable/ic_launcher" >
    </ImageView>

    <TextView
        android:id="@+id/grid_item_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="label"
        android:layout_marginTop="5px"
        android:textSize="15px" 
        android:layout_below="@+id/grid_item_image">
    </TextView>

</RelativeLayout>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/grid_item_image"
        android:layout_width="50px"
        android:layout_height="50px"
        android:layout_marginRight="10px"
        android:src="@drawable/ic_launcher" >
    </ImageView>
    <ImageView
        android:id="@+id/grid_item_image_select"
        android:layout_width="50px"
        android:layout_height="50px"
        android:layout_marginRight="10px"
        android:src="@drawable/ic_launcher" >
    </ImageView>

    <TextView
        android:id="@+id/grid_item_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="label"
        android:layout_marginTop="5px"
        android:textSize="15px" 
        android:layout_below="@+id/grid_item_image">
    </TextView>

</RelativeLayout>