【问题标题】:How to add an item multiple times in a ListViewActivity from another ListViewActivity如何从另一个 ListView Activity 在 ListView Activity 中多次添加项目
【发布时间】:2014-03-06 12:37:01
【问题描述】:

这是我的原始 ListView 类,我从列表中选择一个项目,但我想选择相同的项目 4 次,然后在另一个活动中它应该添加项目 4 次。我可以在另一个活动中添加一次。我使用 sharedpreferences 进行添加。任何人都可以帮助我如何将值存储 4 次吗?任何提示将不胜感激:(((谢谢

//这是我选择item的类

public class Alcohol extends Activity {
private List<Alcohols> alcohol = new ArrayList<Alcohols>();

String wine;
    String beer;
SharedPreferences someData;
public static String filename = "MySharedString";
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_alcohol);
    someData = getSharedPreferences(filename, 0);
    AlcoholList();
    AlcohollistView();
    registerClickCallBack();
}

private void registerClickCallBack() {
    // TODO Auto-generated method stub
    ListView list = (ListView) findViewById(R.id.AlcoholListView);
    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View viewClicked,
                int position, long id) {

            switch (position) {
            case 0:
                wine = "wine";
                SharedPreferences.Editor editor0 = someData.edit();
                editor0.putString("sharedString4", wine);
                editor0.commit();
                                    otherActivity("list");
                break;

            case 1:
                    beer = "beer";
                SharedPreferences.Editor editor1 = someData.edit();
                editor1.putString("sharedString5", beer);
                editor1.commit();
                                    otherActivity("list");
                break;
            }
});

}

private void AlcohollistView() {
    // TODO Auto-generated method stub
    ArrayAdapter<Alcohol> adapter = new MyListAdapter();
    ListView list = (ListView) findViewById(R.id.AlcoholListView);
    list.setAdapter(adapter);

}

private class MyListAdapter extends ArrayAdapter<Pilstyper> {
    public MyListAdapter() {
        super(Alcohol.this, R.layout.list_item_view, alcohol);
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        View itemView = convertView;
        if (itemView == null) {
            itemView = getLayoutInflater().inflate(
                    R.layout.activity_item_view, parent, false);
        }

        Alcohol alcohol = alcohol.get(position);

        ImageView imageView = (ImageView) itemView
                .findViewById(R.id.wine);
        imageView.setImageResource(alcohol.getIkonId());

        // Text
        TextView text = (TextView) itemView.findViewById(R.id.text_wine);
        text.setText(alcohol.getText());

        return itemView;
    }
}

private void AlcoholList() {
    // TODO Auto-generated method stub
    alcohol.add(new Alcohol("Wine", R.drawable.wine));
    alcohol.add(new Alcohol("Beer", R.drawable.beer));
}

public void otherActivity(String a) {
    Intent i = new Intent();
    if (a.equals("list")) {
        i.setClass(getApplicationContext(), list.class);
    }
    startActivity(i);
    finish();
}
}

这是另一个列表视图类,如果我在上一个类中选择了四次,我想在其中添加一个项目 4 次。我只能加一次://

 public class list extends Activity {
private List<Alcohol> alcohol = new ArrayList<Alcohol>();
ArrayAdapter<Alcohol> adapter;
SharedPreferences someData;
public static String filename = "MySharedString";

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_item);
     someData = getSharedPreferences(filename, 0);
      String wine = someData.getString("sharedString4", "ooo");
               String beer = someData.getString("sharedString5", "ooo");
      if(wine.equals("wine")){
          alcohol.add(new Alcohol("Wine", R.drawable.wine));

      }else if(wine.equals("wine")){
          alcohol.add(new Alcohol("Beer", R.drawable.beer));

      } 

}

【问题讨论】:

    标签: android listview sharedpreferences


    【解决方案1】:

    在 onItemClick() 中只存储您想要传递给数组列表中其他活动的值。像 list.add() 一样,然后使用一种提交类型的通用按钮移动到其他活动。可以放在您的列表视图之后。并有目的地通过该列表。

    【讨论】:

    • 那么它会根据项目被选中的次数添加值?
    【解决方案2】:

    如果它就像添加到购物车类型,则将每个选择保存到表或您之前的活动可以访问的对象中,然后在 onResume 或 onStart 上加载它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多