2013-08-30 2 views
1

아래 코드와 같이 디자인 된 목록보기가 있습니다. 각각의 그림에는 textview와 edittext가 있는데, 원하는 것은 데이터를 가져와야한다는 것입니다. 버튼을 클릭하면 편집 문구가 표시됩니다. 어떤 데이터없이 비어있는 일부 편집 문구가있을 수 있습니다! 그러나 나는이 형태의 코딩에서 "findById"를 사용할 수 없기 때문에 각 edittext에 어떻게 접근 할 수 있는지 알지 못합니다! 어느 누구도 그걸 도와 줄 수 있습니까?목록보기에서 edittexes의 데이터 가져 오기

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/selection" 
     android:layout_width="30dp" 
     android:layout_height="30dp" /> 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="512dp" 
     android:drawSelectorOnTop="false" /> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.79" > 

<Button 
      android:id="@+id/button1" 
      android:layout_width="100dp" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:text="Button" /> 

    <Button 
      android:id="@+id/button2" 
      android:layout_width="100dp" 
      android:layout_height="match_parent" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentTop="true" 
      android:text="Button" /> 

    </RelativeLayout> 

    </LinearLayout> 

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
xmlns:android = "http://schemas.android.com/apk/res/android" 
android:layout_width = "fill_parent" 
android:layout_height = "wrap_content" 
android:orientation = "horizontal" > 

    <ImageView 
    android:id = "@+id/pic" 
    android:padding  = "2dip" 
    android:layout_width = "100dp" 
    android:layout_height = "100dp" 
    android:src = "@drawable/download" /> 

<EditText 
     android:id="@+id/editpizza" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:ems="10" 
     android:height="5dp" 
     android:inputType="number" 
     android:width="10dp" > 

     <requestFocus /> 
    </EditText> 

    <TextView 
    android:id = "@+id/label" 
    android:layout_width = "wrap_content" 
    android:layout_height = "wrap_content" 
    android:textSize  = "40sp" /> 

</LinearLayout> 

자바 코드 :

public class ListView extends ListActivity { 
     /** Called when the activity is first created. */ 
     private TextView selection; 
     private EditText choose; 
     private static final String[] items = {"مخصوص", "مخلوط", "یونانی", "قارچ و گوشت", "پپرونی", "مرغ و قارچ", "سبزیجات", "دریایی"}; 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.view); 

      setListAdapter(new IconicAdapter()); 
      selection = (TextView)findViewById(R.id.selection); 
      choose=(EditText) findViewById(R.id.editpizza); 
     } 

     public void OnListItemClick(ListView parent, View v, int position, long id){ 
      selection.setText(items[position]); 

     } 

     private String getModel(int position){ 
      return(((IconicAdapter)getListAdapter()).getItem(position)); 
     } 


     //===================== 
     //New Class Starts Here 
     //===================== 
     class IconicAdapter extends ArrayAdapter<String> { 

      public IconicAdapter() { 
       super(ListView.this, R.layout.row, R.id.label, items); 
      } 

      public View getView(int position, View convertView, ViewGroup parent){   
       View row = super.getView(position, convertView, parent); 
       view holder = (view)row.getTag(); 

       if(holder == null){             
        holder = new view(row); 
        row.setTag(holder); 
       } 

       if(getModel(position).contentEquals("مخصوص")){ 
        holder.icon.setImageResource(R.drawable.download); 
       } 
       else if (getModel(position).contains("دریایی")){ 
        holder.icon.setImageResource(R.drawable.drink); 
       } 
       else if (getModel(position).contains("سبزیجات")){ 
        holder.icon.setImageResource(R.drawable.french); 
       } 
       else if (getModel(position).contains("مرغ و قارچ")){ 
        holder.icon.setImageResource(R.drawable.frenchfrise); 
       } 
       else if (getModel(position).contains("پپرونی")){ 
        holder.icon.setImageResource(R.drawable.sandwich); 
       } 
       else if (getModel(position).contains("قارچ و گوشت")){ 
        holder.icon.setImageResource(R.drawable.ic_launcher); 
       } 
       else if (getModel(position).contains("یونانی")){ 
        holder.icon.setImageResource(R.drawable.sandwich); 
       } 
       else if (getModel(position).contains("مخلوط")){ 
        holder.icon.setImageResource(R.drawable.sandwich); 
       } 
       else if (getModel(position).contains("مخصوص")){ 
        holder.icon.setImageResource(R.drawable.sandwich); 
       } 

       return(row); 
      }  
     } 
    } 


    public class view { 
    ImageView icon = null; 

    view(View base){ 
     this.icon = (ImageView)base.findViewById(R.id.pic); 
    } 
} 

답변

1

당신은 IconicAdapter ArrayAdapter와의 getView() 기능에서이 작업을 수행 할 수 있습니다.

먼저 당신의 버튼 인 경우 당신은 다음

를 얻기 위해 원하는대로 당신의 텍스트 뷰 또는 글고 또는를 얻으려면

TextView txtViewSelection = (TextView) rowView.findViewById(R.id.editpizza); 

을 사용할 수 있습니다

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View rowView = inflater.inflate(R.layout.YourRowLayout, parent, false); 

를 사용의 getView 함수에서보기를 부풀려 listview에서 getView 함수의 클릭 수신기 기능에 대해서도 정의 할 수 있습니다.

+0

고마워요 ...이 "txtViewSelection"을 사용하여 데이터가 올바르게 저장되었는지 어떻게 알 수 있습니까? 나는이 줄을 "\t Log.d ("tag ", txtViewSelection.toString());") 시도했지만 logcat에 표시된 내용은 텍스트 상자에 입력 한 숫자와 다릅니다. –

+0

txtViewSelection.getText(). toString(); – Hevski

+0

감사합니다. 예를 들어 2 개의 숫자를 2 개의 편집 텍스트에 쓰면 그 중 하나만 저장됩니다. –

관련 문제