2013-03-19 116 views
0

enter image description hereenter image description here我有EditText上排在第二activity.so的價值在這裏輸入將被添加到在第一個活動的自定義列表視圖。自定義列表視圖編輯值

我的名單上有TextView的,多選和按鈕(編輯)的第一項活動。這裏的textview將來自第二個activity edittext數據。所以在這裏,如果我點擊編輯然後導航到特定數據.AM獲得所有這些現在..在第二acitity我想編輯文本字段的值。所以它具有與此數據的列表視圖,顯示修正值的第二項活動特定行。

public class MyApplication extends Application{ 


ArrayList<String> arryList = new ArrayList<String>(); 
    String cardNumberData=null; 

} 


public class Second extends Activity{ 

    EditText cardNumber; 
    String cardNumberReceived; 
    MyApplication app; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.editcredit); 

    cardNumberReceived = getIntent().getStringExtra("cardwithoutstring"); 

    System.out.println("cardWithOutStringReceived"+cardNumberReceived); 


app = ((MyApplication) getApplicationContext()); 


cardNumber =(EditText)findViewById(R.id.cardnumber); 

cardNumber.setText(cardNumberReceived);  

Button save =(Button)findViewById(R.id.save); 
    save.setOnClickListener(new OnClickListener() { 

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

       app.cardNumberData =cardNumber.getText().toString();     
       System.out.println("Gotcardname"+app.cardNumberData);   


       app.arryList.add(app.cardNumberData); 


      System.out.println("Array List Size "+app.arryList.size()); 
      System.out.println("Array List Size "+app.cardTypeList.size()); 

      Intent saveIntent =new Intent(Second.this,First.class); 

      startActivity(saveIntent); 

     } 
    }); 


    } 

} 



public class First extends Activity{ 


    protected ListItemsState[] mDeletedItemsStates; 
    protected ArrayAdapter<ListItemsState> mListAdapter; 
    protected ListView mFoldersListView; 
    protected Context mContext; 
    LayoutInflater lay; 
    MyApplication app; 



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

     setContentView(R.layout.newcard); 

     app = ((MyApplication) getApplicationContext()); 



     mDeletedItemsStates = (ListItemsState[])getLastNonConfigurationInstance(); 

     if (mDeletedItemsStates == null) { 
      mDeletedItemsStates = new ListItemsState[app.arryList.size()]; 
      for (int i = 0; i < app.arryList.size(); i++) { 


      mDeletedItemsStates[i] = new ListItemsState(app.arryList.get(i),i); 

      } 
     } 
     ArrayList<ListItemsState> gridItemsList = new ArrayList<ListItemsState>(); 
     gridItemsList.addAll(Arrays.asList(mDeletedItemsStates)); 

     mListAdapter = new DeletedItemsStateArrayAdapter(this, gridItemsList); 
     mFoldersListView.setAdapter(mListAdapter); 
     mFoldersListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 

     mFoldersListView.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
        long arg3) { 
       Toast.makeText(getApplicationContext(), "am thelist", 
         Toast.LENGTH_LONG).show(); 
      } 
     }); 




    } 


    private static class ListItemsState { 
     private String produ = ""; 
     private boolean checked = false; 
     private int position;  

     public ListItemsState(String produ, int position) {  
      this.position = position;   

     } 

     public String getProdu() { 
      return produ; 
     } 


     public int getPosition() { 
      return position; 
     } 

     public boolean isChecked() { 
      return checked; 
     } 

     public void setChecked(boolean checked) { 
      this.checked = checked; 
     } 


    } 

    /** Holds child views for one row. */ 
    private static class ListItemsStateViewHolder { 
     private RadioButton checkBox; 
     private TextView produ; 
      private Button edit;   

     public TextView getProdu() { 
      return produ; 
     }    

     public Button getEdit() { 
      return edit; 
     } 

     public RadioButton getCheckBox() { 
      return checkBox; 
     } 


    } 


    private class DeletedItemsStateArrayAdapter extends 
      ArrayAdapter<ListItemsState> { 

     private int mSelectedPosition = -1; 
     private RadioButton mSelectedRB; 

     private LayoutInflater inflater; 
     public DeletedItemsStateArrayAdapter(Context context, 
       List<ListItemsState> sentItemsStateList) { 
      super(context, R.layout.customlist, R.id.card, 
        sentItemsStateList); 

      // Cache the LayoutInflate to avoid asking for a new one each time. 
      inflater = LayoutInflater.from(context); 
     } 

     @Override 
     public View getView(final int position, View convertView, 
       ViewGroup parent) { 


      final ListItemsState deletedItemsState = (ListItemsState) this 
        .getItem(position); 


      ListItemsStateViewHolder viewHolder = new ListItemsStateViewHolder(); 
      // Create a new row view 
      if (convertView == null) { 
       convertView = inflater.inflate(R.layout.customlist, null); 

       convertView.setTag(new ListItemsStateViewHolder()); 


      } 

      else { 

       viewHolder = (ListItemsStateViewHolder) convertView.getTag(); 
       viewHolder.checkBox = viewHolder.getCheckBox(); 

       viewHolder.produ = viewHolder.getProdu(); 

       viewHolder.edit = viewHolder.getEdit(); 


      } 


       viewHolder.produ = (TextView) convertView.findViewById(R.id.card);   
         viewHolder.checkBox = (RadioButton) convertView.findViewById(R.id.radioButton1);       

       viewHolder.edit=(Button)convertView.findViewById(R.id.editbutton);  


      try { 
       viewHolder.checkBox.setTag(deletedItemsState); 
      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      }  



       viewHolder.edit.setOnClickListener(new OnClickListener() { 

        @Override 
        public void onClick(View arg0) { 


       Intent edit =new Intent(getApplicationContext(), Second.class);    

        edit.putExtra("cardNumberSending",app.arryList.get(position));      

       edit.putExtra("Indexvalue",mFoldersListView.getItemIdAtPosition(position)); 


     System.out.println("Index value ::::::::: "+mFoldersListView.getItemIdAtPosition(position)); 

          startActivity(edit);        

        } 
       }); 

      viewHolder.produ.setText(deletedItemsState.getProdu());  


      return convertView; 
     } 

    } 

    public Object onRetainNonConfigurationInstance() { 
     return mDeletedItemsStates; 
    } 
} 
+0

什麼是現在hapenign? – Triode 2013-03-19 10:22:02

+0

我得到它增加一個項目kranthi低於新價值桑傑。其實它有可能取代 – arunk 2013-03-19 10:32:01

+0

看到答案貼 – Triode 2013-03-19 10:45:03

回答

0

您要添加的編輯數據的ArrayList再次避免了SecondActivity

app.cardNumberData = cardNumber.getText().toString(); 
if(arryList.indexOf(cardNumberReceived) != -1) 
{ 
    app.arryList.set(arryList.indexOf(cardNumberReceived), app.cardNumberData); 
}else 
{ 
    app.arryList.add(app.cardNumberData); 
} 

裏面在你的第二個Activity做到這一點onClick保存。

+0

,如果我不喜歡我的節省發生什麼(只次活動住宿)的第一次點擊讓桑傑和桑傑....代替桑傑 – arunk 2013-03-19 11:44:25

+0

和第二單擊其發生的那樣。 – arunk 2013-03-19 11:46:32

+0

可以發送你的Gmail的ID – arunk 2013-03-19 11:54:30