【问题标题】:Enumerate users for each day枚举每天的用户
【发布时间】:2017-11-06 11:16:19
【问题描述】:

我是 Android 开发新手。我有一个 Activity 和一个 ListView,其中显示了用户选择的项目并将它们保存到 firebase

在此活动中,我想枚举每个将商品保存到 Firebase 的用户,例如跟踪号,并在另一个活动中显示用户数量、所选商品的价格和所选商品的数量用户。

我有选定项目的价格和用户选择的项目数量,但只是显示在 Toast 中,因为我不知道如何将它们全部发送到 ListView 中的另一个活动。

 int totalPrice = 0;
 for(VanzatorProduse v : Util.getInstance().getVanzatorProduse())
 {
       int vPrice = Integer.parseInt(v.getPret());
       totalPrice = totalPrice + vPrice;
 }

 Toast.makeText(getApplicationContext(), "Selected products : " + listaProdusePreview.getAdapter().getCount() +"\n"+"Total sum : " + totalPrice , Toast.LENGTH_LONG).show();

但是对于第二天的枚举需要从 0 开始。

我找了很多教程,但我不知道从哪里开始。希望你能理解。

【问题讨论】:

    标签: java android listview firebase


    【解决方案1】:

    下面的示例向您展示了如何为特定位置传递 onItemClick 数据。

    ListView listview = getListView();
    
    
            listview.setOnItemClickListener(new OnItemClickListener() {
              public void onItemClick(AdapterView<?> parent, View view,
                  int position, long id) {
    
                  Intent i = new Intent(getApplicationContext(), SingleListItem.class);
                  // sending data to new activity
                  i.putExtra("position", arraylist.get(position));
                  startActivity(i);
    
              }
            });
    

    将您的枚举值保存在 Firebase 数据库中并从 firebase 中检索。

    编码愉快!!

    【讨论】:

      【解决方案2】:

      要将数据发送给另一个Activity,你可以这样做:

      Intent i = new Intent(this, NewActivity.class);
      i.putExtra("key","value");
      startActivity(i);
      

      然后在你的 NewActivity 中:

      Bundle extras = getIntent().getExtras();
      if (extras != null) {
          String value = extras.getString("key");
          //The key argument here must match that used in the other activity
      }
      

      编辑:至于将枚举重置为0,可以使用AlarmManager 例如:

      AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
      Intent intent = new Intent(context, AlarmReceiver.class);
      PedingIntent alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
      
      Calendar calendar = Calendar.getInstance();
      calendar.setTimeInMillis(System.currentTimeMillis());
      calendar.set(Calendar.HOUR_OF_DAY, 00);
      alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
              AlarmManager.INTERVAL_DAY, alarmIntent);
      

      然后创建一个BroadcastReceiver

      public class AlarmReceiver extends BroadcastReceiver 
      {    
          @Override
          public void onReceive(Context context, Intent intent) 
          {   
              //reset enumeration to 0
          }
      }
      

      【讨论】:

      • 当每个用户将项目保存到 firebase 时,我如何给他一个数字?
      【解决方案3】:

      将所有数据传递给下一个Activity 获取 VanzatorProduse 类型的 ArrayList 并使用 ParcelableArrayList 数据发送到下一个 Activity > 和 serializable 对象使用 Bundle、SharedPreferences 或保存在文件中(多选)

      第二天的枚举需要从 0 开始 为此,您可以使用 BroadcastReceiver Listener 清除 ArrayList 并且可以从 0 开始

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-08
        • 1970-01-01
        相关资源
        最近更新 更多