2016-04-25 75 views
-4
Daily Screen :- 

public class DailyScreen extends AppCompatActivity implements AdapterView.OnItemClickListener { 

    ImageView add, edit; 
    MyCustomAdapter adapter1; 
    Button ok; 
    Button next2; 

    final Context context = this; 
    ListView listView; 
    private ArrayAdapter<String> adapter; 
    List<Milk> items=new ArrayList(); 

    public List<Milk> getItems() { 
     return items; 
    } 

    public void setItems(List<Milk> items) { 
     this.items = items; 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.daily_listview); 


     add = (ImageView) findViewById(R.id.add); 
     edit = (ImageView) findViewById(R.id.edit); 
     listView = (ListView) findViewById(R.id.list); 
     next2 = (Button) findViewById(R.id.next2); 

     Milk milkDefault=new Milk("Toned Milk",0); 
     items.add(milkDefault); 
     //this.setArrayList((ArrayList<String>) Arrays.asList(items)); 
     adapter1 = new MyCustomAdapter(items, this); 

     listView.setAdapter(adapter1); 
     listView.setOnItemClickListener(this); 
     registerForContextMenu(listView);// to set context menu in list view 
    } 
    @Override 
    protected void onResume() { 
     super.onResume(); 
     next2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(DailyScreen.this, SupplierActivity.class); 
       intent.putExtra("LIST_ITEMS",List,items);// 

       startActivity(intent); 
      } 
     }); 


     add.setOnClickListener(new View.OnClickListener() 

     { 
      @Override 
      public void onClick(View v) { 
       final Dialog dialog = new Dialog(DailyScreen.this); 
       dialog.setTitle("Enter new Milk"); 
       dialog.setContentView(R.layout.dialog_box); 
       dialog.setCancelable(false); 
       dialog.setCanceledOnTouchOutside(false); 
       dialog.show(); 

       final EditText editText = (EditText) dialog.findViewById(R.id.pro); 
       String data = editText.getText().toString(); 
       //button initialization 
       Button ok = (Button) dialog.findViewById(R.id.ok); 

       ok.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         String data = editText.getText().toString(); 
         if (!data.isEmpty()) { 
          items.add(new Milk(data,0)); 
          adapter1.notifyDataSetChanged(); 
          Toast.makeText(getApplicationContext(), "product name is :" + data, Toast.LENGTH_LONG).show(); 
          dialog.cancel(); 
         } 
         else{ 
          Toast.makeText(DailyScreen.this, "Please enter the data", Toast.LENGTH_SHORT).show(); 
         } 

        } 
       }); 

      } 

     }); 
    } 

MyCustomAdapter类如何将数组列表的所有数据发送到另一个活动?

public class MyCustomAdapter extends BaseAdapter implements ListAdapter { 

    private List<Milk> list = new ArrayList<Milk>(); 
    private Context context; 

    public MyCustomAdapter(List<Milk> list, Context context) { 
     this.list = list; 
     this.context = context; 
    } 


    @Override 
    public int getCount() { 
     return list.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     return list.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 
     View view = convertView; 
     if (view == null) { 

      LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      view = inflater.inflate(R.layout.custom_layout, null); 
     } 
     TextView name = (TextView) view.findViewById(R.id.text); 
     name.setText(list.get(position).getNsme()); 
     final TextView milkCount = (TextView) view.findViewById(R.id.milkcount); 
     milkCount.setText(""+list.get(position).getAmount()); 
     ImageView increment = (ImageView) view.findViewById(R.id.add); 
     ImageView decrement = (ImageView) view.findViewById(R.id.sub_item); 
     increment.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       int a = Integer.parseInt(milkCount.getText().toString().trim()); 
       a = a + 1; 
       milkCount.setText("" + a); 
       list.get(position).setAmount(a); 
      } 
     }); 
     decrement.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       int a = Integer.parseInt(milkCount.getText().toString().trim()); 
       if (a == 0) { 
        a = 0; 
       } else { 
        a = a - 1; 
       } 
       milkCount.setText("" + a); 
       list.get(position).setAmount(a); 
      } 
     }); 
     return view; 
    } 

牛奶类

public class Milk { 

    private String nsme ; 
    private int amount ; 

    public Milk(String nsme, int amount) { 
     this.nsme = nsme; 
     this.amount = amount; 
    } 

    public String getNsme() { 
     return nsme; 
    } 

    public void setNsme(String nsme) { 
     this.nsme = nsme; 
    } 
    public int getAmount() { 
     return amount; 
    } 
    public void setAmount(int amount) { 
     this.amount = amount; 
    } 

我已经尝试了所有的事情列表视图中的所有数据发送到另一个activty请建议我,我该怎么办呢? ?

+0

试试这个:将arrayList保存在一个实用程序/单个实例 类中并使用它。 – Raghavendra

+0

代码蝙蝠侠的圣墙! – avalancha

+0

我试过那个@Raghavendra –

回答

0

试试这个。可能是它的帮助。

通过演员阵列发送arraylist到活动。

intent.putStringArrayListExtra("ARRAY_LIST", arrayList); 

检索活动中的数组列表。

arrayList= i.getStringArrayListExtra("ARRAY_LIST"); 

如果你必须发送数组以外的数组列表然后。

intent.putParcelableArrayListExtra("ARRAY_LIST", (ArrayList<Milk>) milkArrayList); 

牛奶类必须是parcellable

+0

我觉得类型牛奶的ArrayList的需要 – Raghavendra

+0

@vipin夏尔马不工作:( –

+0

公共无效的onClick(视图v){ 意向意图=新意图(DailyScreen.this,SupplierActivity.class);通过使用permitive 意图 //。 putStringArrayListExtra( “ARRAY_LIST”,项目); startActivity(意向); } –

0

榜上无名静而后U可以访问它的任何活动。确保ü初始化列表

0
milk class extends serializable firstly 
then u do 
make object of milk class in mainactivity class 
Milk milk=new Milk(this); 
Intent i=new Intent(getApplicationContext(),Update.class); 
      i.putExtra("emnumber",(Serializable)milk); 
      startActivity(i); 
then u can pick the value in update class 
if(getIntent().getSerializableExtra("emnumber")!=null) { 
      con = (ArrayList<Contact>) getIntent().getSerializableExtra("emnumber"); 
      email_mobile = contactList.get(0).nsme; 
      pass__word = contactList.get(0).amount; 
+0

都能跟得上没有工作 –

+0

u使用活动类接收意图数据首先 – 2016-04-25 11:06:30

+0

列表 CON =新的ArrayList <>(); – 2016-04-25 11:08:15

0

可以作为实现:

public class Milk implements Parcelable{ 

...... }

发送的ArrayList为:

intent.putExtra("files", "your arraylist"); 

获得的ArrayList如:

 Intent inIntent = getIntent(); 
    list=inIntent.getParcelableArrayListExtra("files"); 
相关问题