簡體   English   中英

檢查EditText值到ListView android

[英]check EditText value onto ListView android

我在主要活動中使用ListView,並且類適配器使用登錄表單僅將一行擴展了ArrayAdapter。

這樣的代碼適配器”

public class AdapterLogin extends ArrayAdapter<ListArrayItem> {

Context mContext;
int layoutResourceId;
ListArrayItem data[] = null;
  public AdapterLogin(Context mContext, int layoutResourceId, ListArrayItem[] data) {

    super(mContext, layoutResourceId, data);

    this.layoutResourceId = layoutResourceId;
    this.mContext = mContext;
    this.data = data;
}
   public View getView(final int position, View convertView, ViewGroup parent) {

    if(convertView==null){

        LayoutInflater inflater = ((Activity) mContext).getLayoutInflater();
        convertView = inflater.inflate(layoutResourceId, parent, false);
    }
//here i have for login like this
  lin_form = new LinearLayout(mContext);
  EditText email_input = new EditText(mContext);  
  Button  btn_sign = new Button(mContext);
  btn_sign.setOnClickListener(login_btn_clicked);
  TextView login_status_message = new TextView(mContext);  
  lin_form.addView(email_input);
  lin_form.addView(btn_sign);
  lin_form.addView(login_status_message); 
  rowitem = (RelativeLayout)convertView.findViewById(R.id.rowitem);
  rowitem.addView(lin_form); 
  return convertView;

}


 public OnClickListener login_btn_clicked = new OnClickListener() {
 String email_value = email_input.getText().toString();
  // i want to see email_value but doesnt show me any thing
  login_status_message.setText("email value:"+ email_value);

};

在主要活動中,我有這樣的代碼:

    FillFooter fillfooter= new FillFooter();
    fillfooter.setFooter(MainActivity.this,"mainactivity");
    fillfooter.fillFooter();

 public static void gotoLogin(Context context){
        Activity activity = (Activity)context;
        activity.setTitle("Broonza: Вход"); 
        list = new HashMap<String, String>();
        listarraymain[0] = new ListArrayItem(1, list);
        AdapterLogin adapter = new AdapterLogin(context, R.layout.row_item, listarraymain);
        listviewtmain.clearFocus();
        listviewtmain.setAdapter(adapter);
 }

在課堂上填寫頁腳

     public class FillFooter {
     public void setFooter(Context context,String typeactivity){
     this.context = context;    
     this.activity = (Activity) context;
     linaccount = new LinearLayout(context);
     linaccount.setOnClickListener(gotologin);
    }

    public OnClickListener gotologin= new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        MainActivity.gotoLogin(context);

    }
};

} row_item.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="1dp" 
android:paddingBottom="0dp"
android:paddingTop="10dp"
android:id="@+id/rowitem" >

從適配器到列表視圖的所有字段加載表單登錄都可以正常工作,但是如果電子郵件字段內容文本未顯示該文本,則單擊按鈕登錄時。 問題不在打印錯誤中!,打印字段電子郵件值中存在問題! OnCLickListener()不起作用。 只有當我將email_field的文本添加到這樣的內部適配器中時,它才起作用! email_input.setText( “example@mail.ru”)

我認為不是

if(error !=""){
   login_status_message.setText(error);
  }

應該是這樣的:

if(!error.equals(""){
  login_status_message.setText(error);
}

這基本上是字符串比較。 如果要將字符串與字符串進行比較,則應使用equals()而不是!=。

您的問題是錯誤值始終為null,您看不到email的值,它沒有調用login_status_message.setText(“ email value:” + email_value);
改變這個

 btn_sign.setOnClickListener(login_btn_clicked);
 TextView login_status_message = new TextView(mContext);

這樣:

 TextView login_status_message = new TextView(mContext);
 btn_sign.setOnClickListener(login_btn_clicked);

您正在使用getView方法進行初始化,並且該代碼位於該代碼塊的本地; 您如何在方法之外訪問此字段? 您已使用以下方法創建了本地對象:

   EditText email_input = new EditText(mContext); 
   TextView login_status_message = new TextView(mContext);  

在getView方法中。 您需要將Listener放入getView方法中,如下所示:

    btn_sign.setOnClickListener(new OnClickListener() {
    String email_value = email_input.getText().toString();
    // i want to see email_value but doesnt show me any thing
    login_status_message.setText("email value:"+ email_value);
    });

如果您有另一個重復的字段,請重新檢查該代碼。

感謝你所做的一切)。 重新啟動Eclipse之后,它可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM