2012-01-30 74 views
1

我創建了一個簡單的應用程序。用戶將在提供的每個editText對中輸入用戶名數據和密碼。Android EditText:如何處理數據

我的問題與提取此數據。通常情況下,我會通過分配給每個editText的「@ id /」值進行提取,但由於我使用適配器和該行的單獨xml文件,因此每個editText都具有相同的編號。

有沒有人有一個想法,我可能會這樣做呢?

main.xml中

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

<Button 
    android:id="@+id/cancelbutton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/cancel" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:paddingLeft="50dp" 
    android:paddingRight="50dp"/> 

<Button 
    android:id="@+id/submitbutton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/submit" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:paddingLeft="50dp" 
    android:paddingRight="50dp"/> 

<ListView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/list" 
    android:layout_alignParentTop="true" 
    android:layout_above="@id/cancelbutton" /> 

list.xml:用於各行

<RelativeLayout 

xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
    <ImageView 
     android:id="@+id/logo" 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentBottom="true" 
     android:src="@drawable/g" > 
    </ImageView> 

    <EditText 
     android:id="@+id/firstLine" 
     android:layout_width="200dp" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:text="email"   
     > 
    </EditText> 

    <EditText 
     android:id="@+id/secondLine" 
     android:layout_width="200dp" 
     android:layout_height="wrap_content" 
     android:layout_alignRight="@id/logo" 
     android:layout_alignParentRight="true" 
     android:layout_below="@id/firstLine" 
     android:text="password" 
     > 
    </EditText> 

public class ColorAdapter extends ArrayAdapter<String> { 
private final Context context; 
private final String[] values; 

public SocialSiteAdapter(Context context, String[] values) { 
    super(context, R.layout.list, values); 
    this.context = context; 
    this.values = values; 
} 

// GetView does what exactly..? 
@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    LayoutInflater inflater = (LayoutInflater) context 
     .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 


    View rowView = inflater.inflate(R.layout.list, parent, false); 

    ImageView imageView = (ImageView) rowView.findViewById(R.id.logo); 


    // Change icon based on name 
    String s = values[position]; 

    System.out.println(s); 


    if (s.equals("Blue")) { 
     imageView.setImageResource(R.drawable.b); 
    } else if (s.equals("Green")) { 
     imageView.setImageResource(R.drawable.g); 
    } else if (s.equals("Red")) { 
     imageView.setImageResource(R.drawable.r); 
    } else if (s.equals("Yellow")) { 
     imageView.setImageResource(R.drawable.y); 
    } else { 
     imageView.setImageResource(R.drawable.ic_launcher); 
    } 

    return rowView; 
} 
} 
+0

你可以發佈你的代碼嗎? – bschultz 2012-01-30 15:19:59

+0

當然,我已經添加到兩個XML文件和適配器代碼的代碼。主要活動內的代碼只是list.setAdapter() – BodhiByte 2012-01-30 15:32:39

回答

1

您需要先選擇該行,然後內該行選擇EditText S按它們的已知@id

要列出的條目,你可以去這樣的:

ListView listView = getListView(); 
for (int i = 0; i < listView.getCount(); i++) { 
    Layout row = (Layout) listView.getItemAtPosition(i); /// XXX 
    EditText t = (EditText) row.findViewById(R.id.firstLine); 
    // ... 
} 

你需要自己在XXX行什麼的getItem ..調用返回並更改相應檢查。

+0

嗨,我該怎麼去單獨選擇每一行? – BodhiByte 2012-01-30 15:42:31

+0

謝謝Heiko。我應該提到,我的主要活動是實現一個ListView而不是一個Activity,所以我實際上不能使用getListView方法。 – BodhiByte 2012-01-30 16:55:52

+0

在這種情況下,當activity是ListView時,你應該能夠直接調用'getCount'和'getItemAtPosition'? – 2012-01-30 20:52:49