自定义列表视图编辑值

自定义列表视图编辑值

问题描述:

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

您要添加的编辑数据的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