Android 如何将多个选定项传递给第一个活动(仅选定项)和存储的共享首选项

Android 如何将多个选定项传递给第一个活动(仅选定项)和存储的共享首选项,android,gridview,shared,preference,Android,Gridview,Shared,Preference,我是一名新的Android开发人员,我需要将多个选定的网格视图项从一个活动传递到另一个活动。然后将选定的项目按选定顺序存储并使用共享首选项。请帮助我 我的第二项活动 公共类MainActivity扩展活动实现OnClickListener{ ArrayList<String> resultArr; Button add, exit; GridView grid; baseadapter adapter; @Override protected void onCreate(Bund

我是一名新的Android开发人员,我需要将多个选定的网格视图项从一个活动传递到另一个活动。然后将选定的项目按选定顺序存储并使用共享首选项。
请帮助我

我的第二项活动

公共类MainActivity扩展活动实现OnClickListener{

ArrayList<String> resultArr;
Button add, exit;
GridView grid;
baseadapter adapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    resultArr = getIntent().getStringArrayListExtra("data");

    grid = (GridView) findViewById(R.id.main_grid);
    exit = (Button) findViewById(R.id.button2);


    if (resultArr != null) {
        adapter = new baseadapter();
        grid.setAdapter(adapter);
    }

    grid.setOnItemLongClickListener(new OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                int position, long arg3) {
            // TODO Auto-generated method stub
            resultArr.remove(position);
            adapter.notifyDataSetChanged();
            Toast.makeText(getApplicationContext(), "Deleted",
                    Toast.LENGTH_SHORT).show();
            return false;
        }
    });

    add = (Button) findViewById(R.id.button1);
    add.setOnClickListener(this);

    exit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            System.exit(0);
        }
    });
}

public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent intent = new Intent(MainActivity.this, ListActivity.class);
    startActivity(intent);
}

class baseadapter extends BaseAdapter {

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

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

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

    @Override
    public View getView(int position, View arg1, ViewGroup arg2) {
        LayoutInflater layoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
        View view = layoutInflater.inflate(R.layout.base, null);
        ImageView image = (ImageView) view.findViewById(R.id.imageView1);
        image.setImageResource(ListActivity.image_items[Integer.parseInt(resultArr.get(position))]);
        return view;
    }
}
ArrayList<String> resultArr;
Button add, exit;
GridView grid;
baseadapter adapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    resultArr = getIntent().getStringArrayListExtra("data");

    grid = (GridView) findViewById(R.id.main_grid);
    exit = (Button) findViewById(R.id.button2);


    if (resultArr != null) {
        adapter = new baseadapter();
        grid.setAdapter(adapter);
    }

    grid.setOnItemLongClickListener(new OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                int position, long arg3) {
            // TODO Auto-generated method stub
            resultArr.remove(position);
            adapter.notifyDataSetChanged();
            Toast.makeText(getApplicationContext(), "Deleted",
                    Toast.LENGTH_SHORT).show();
            return false;
        }
    });

    add = (Button) findViewById(R.id.button1);
    add.setOnClickListener(this);

    exit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            System.exit(0);
        }
    });
}

public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent intent = new Intent(MainActivity.this, ListActivity.class);
    startActivity(intent);
}

class baseadapter extends BaseAdapter {

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

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

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

    @Override
    public View getView(int position, View arg1, ViewGroup arg2) {
        LayoutInflater layoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
        View view = layoutInflater.inflate(R.layout.base, null);
        ImageView image = (ImageView) view.findViewById(R.id.imageView1);
        image.setImageResource(ListActivity.image_items[Integer.parseInt(resultArr.get(position))]);
        return view;
    }
}
arraylistresultar;
按钮添加、退出;
网格视图网格;
基本适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
resultar=getIntent().getStringArrayListExtra(“数据”);
grid=(GridView)findviewbyd(R.id.main_grid);
退出=(按钮)findViewById(R.id.button2);
if(resultar!=null){
适配器=新的baseadapter();
设置适配器(适配器);
}
setOnItemLongClickListener(新的OnItemLongClickListener(){
@凌驾
长单击(AdapterView arg0、视图arg1、,
整数位置,长arg3){
//TODO自动生成的方法存根
结果:移除(位置);
adapter.notifyDataSetChanged();
Toast.makeText(getApplicationContext(),“已删除”,
吐司。长度(短)。show();
返回false;
}
});
add=(按钮)findViewById(R.id.button1);
add.setOnClickListener(这个);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
系统出口(0);
}
});
}
公共void onClick(视图v){
//TODO自动生成的方法存根
意向意向=新意向(MainActivity.this、ListActivity.class);
星触觉(意向);
}
类baseadapter扩展了baseadapter{
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回resultArr.size();
}
@凌驾
公共对象getItem(int arg0){
//TODO自动生成的方法存根
返回null;
}
@凌驾
公共长getItemId(int arg0){
//TODO自动生成的方法存根
返回0;
}
@凌驾
公共视图getView(内部位置、视图arg1、视图组arg2){
LayoutInflater LayoutInflater=(LayoutInflater)getSystemService(布局\充气器\服务);
视图=布局更平坦。充气(R.layout.base,null);
ImageView image=(ImageView)view.findViewById(R.id.imageView1);
setImageResource(ListActivity.image_items[Integer.parseInt(resultar.get(position)));
返回视图;
}
}
}

我的另一项活动

公共类MainActivity扩展活动实现OnClickListener{

ArrayList<String> resultArr;
Button add, exit;
GridView grid;
baseadapter adapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    resultArr = getIntent().getStringArrayListExtra("data");

    grid = (GridView) findViewById(R.id.main_grid);
    exit = (Button) findViewById(R.id.button2);


    if (resultArr != null) {
        adapter = new baseadapter();
        grid.setAdapter(adapter);
    }

    grid.setOnItemLongClickListener(new OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                int position, long arg3) {
            // TODO Auto-generated method stub
            resultArr.remove(position);
            adapter.notifyDataSetChanged();
            Toast.makeText(getApplicationContext(), "Deleted",
                    Toast.LENGTH_SHORT).show();
            return false;
        }
    });

    add = (Button) findViewById(R.id.button1);
    add.setOnClickListener(this);

    exit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            System.exit(0);
        }
    });
}

public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent intent = new Intent(MainActivity.this, ListActivity.class);
    startActivity(intent);
}

class baseadapter extends BaseAdapter {

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

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

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

    @Override
    public View getView(int position, View arg1, ViewGroup arg2) {
        LayoutInflater layoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
        View view = layoutInflater.inflate(R.layout.base, null);
        ImageView image = (ImageView) view.findViewById(R.id.imageView1);
        image.setImageResource(ListActivity.image_items[Integer.parseInt(resultArr.get(position))]);
        return view;
    }
}
ArrayList<String> resultArr;
Button add, exit;
GridView grid;
baseadapter adapter;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    resultArr = getIntent().getStringArrayListExtra("data");

    grid = (GridView) findViewById(R.id.main_grid);
    exit = (Button) findViewById(R.id.button2);


    if (resultArr != null) {
        adapter = new baseadapter();
        grid.setAdapter(adapter);
    }

    grid.setOnItemLongClickListener(new OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                int position, long arg3) {
            // TODO Auto-generated method stub
            resultArr.remove(position);
            adapter.notifyDataSetChanged();
            Toast.makeText(getApplicationContext(), "Deleted",
                    Toast.LENGTH_SHORT).show();
            return false;
        }
    });

    add = (Button) findViewById(R.id.button1);
    add.setOnClickListener(this);

    exit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            System.exit(0);
        }
    });
}

public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent intent = new Intent(MainActivity.this, ListActivity.class);
    startActivity(intent);
}

class baseadapter extends BaseAdapter {

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

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

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

    @Override
    public View getView(int position, View arg1, ViewGroup arg2) {
        LayoutInflater layoutInflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
        View view = layoutInflater.inflate(R.layout.base, null);
        ImageView image = (ImageView) view.findViewById(R.id.imageView1);
        image.setImageResource(ListActivity.image_items[Integer.parseInt(resultArr.get(position))]);
        return view;
    }
}
arraylistresultar;
按钮添加、退出;
网格视图网格;
基本适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
resultar=getIntent().getStringArrayListExtra(“数据”);
grid=(GridView)findviewbyd(R.id.main_grid);
退出=(按钮)findViewById(R.id.button2);
if(resultar!=null){
适配器=新的baseadapter();
设置适配器(适配器);
}
setOnItemLongClickListener(新的OnItemLongClickListener(){
@凌驾
长单击(AdapterView arg0、视图arg1、,
整数位置,长arg3){
//TODO自动生成的方法存根
结果:移除(位置);
adapter.notifyDataSetChanged();
Toast.makeText(getApplicationContext(),“已删除”,
吐司。长度(短)。show();
返回false;
}
});
add=(按钮)findViewById(R.id.button1);
add.setOnClickListener(这个);
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
系统出口(0);
}
});
}
公共void onClick(视图v){
//TODO自动生成的方法存根
意向意向=新意向(MainActivity.this、ListActivity.class);
星触觉(意向);
}
类baseadapter扩展了baseadapter{
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回resultArr.size();
}
@凌驾
公共对象getItem(int arg0){
//TODO自动生成的方法存根
返回null;
}
@凌驾
公共长getItemId(int arg0){
//TODO自动生成的方法存根
返回0;
}
@凌驾
公共视图getView(内部位置、视图arg1、视图组arg2){
LayoutInflater LayoutInflater=(LayoutInflater)getSystemService(布局\充气器\服务);
视图=布局更平坦。充气(R.layout.base,null);
ImageView image=(ImageView)view.findViewById(R.id.imageView1);
setImageResource(ListActivity.image_items[Integer.parseInt(resultar.get(position)));
返回视图;
}
}

}

如果您只想将几个值从一个活动传递到另一个活动,那么可以使用bundle来实现。例如,您有两个活动活动A和活动B,您希望通过,然后就可以完成

 Intent intent = new Intent(A.this, B.class);
 Bundle bundle = new Bundle();
 bundle.putString(key, val);
 intent.putExtras(bundle);
 startActivity(intent);

发布一些代码和更详细的解释我发布了我的代码请帮助我。我已经完成了这项工作,但我需要多个选定项目通过并在另一个活动中存储另一个网格视图(仅列出选定的顺序)使用共享首选项。如果要使用SharedReference,则可以在发生任何事件(如单击按钮)时将数据保存到SharedReference,然后在另一个活动中从onCreate()中的SharedReference读取数据。