【问题标题】:how to multiple selected item pass secound activity to 1st activity (only selected items)and stored shared preference如何将多个选定项目传递给第一个活动(仅选定项目)并存储共享偏好
【发布时间】:2015-09-18 17:33:44
【问题描述】:

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

我的第二个活动

公共类 MainActivity 扩展 Activity 实现 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;
    }
}

}

我的另一个活动

公共类 MainActivity 扩展 Activity 实现 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;
    }
}

}

【问题讨论】:

  • 贴一些代码和更详细的解释
  • 我发布了我的代码,请帮助我。

标签: android gridview shared preference


【解决方案1】:

如果您只想将少量值从一个活动传递到另一个活动,那么您可以使用 Bundles 来实现。比如你有两个activity Activity A 和 Activity B 你想通过那么就可以了

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

【讨论】:

  • 我已经完成了这个,但我需要通过多个选定的项目并使用共享偏好将另一个网格视图存储在另一个活动中(仅列出选定的顺序)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多