2015-10-14 46 views
0

我有一個編輯文本在我的適配器view.when我滾動列表視圖我失去了編輯文本中輸入的數據,我嘗試了所有在這個網站給出的解決方案,但沒有工作?我怎麼能做到這一點..如何刪除scrooling後在列表視圖中編輯文本的焦點?

這是我的重點轉換聽衆..

private class OnFocusChange implements OnFocusChangeListener { 
    @SuppressWarnings("unused") 
    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     if(hasFocus) { 
      ediTextWatcher = new EditTextWatcher((int) v.getTag(), "remark"); 
      ((EditText) v).addTextChangedListener(ediTextWatcher); 
     } else { 
      ((EditText) v).removeTextChangedListener(ediTextWatcher); 
     } 
    } 
} 

回答

0

希望這有助於U:

if (!hasFocus) { 
       EditText et = (EditText) v.findViewById(R.id.ur_editext);     
       mylist.get(position).put("data", et.getText().toString().trim()); 
      } 
0
//You can achieve the expected output by using the below code ..... 

package mobile.sachien.com.myapplication_imageload; 

import android.app.Activity; 
import android.os.Bundle; 
import android.text.Editable; 
import android.text.TextWatcher; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.EditText; 
import android.widget.ListView; 
import android.widget.TextView; 

public class ListviewActivity extends Activity { 

    private String[] arrText = 
      new String[]{"Text1","Text2","Text3","Text4" 
        ,"Text5","Text6","Text7","Text8","Text9","Text10" 
        ,"Text11","Text12","Text13","Text14","Text15" 
        ,"Text16","Text17","Text18","Text19","Text20" 
        ,"Text21","Text22","Text23","Text24"}; 
    private String[] arrTemp; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.lyt_listview_activity); 

     arrTemp = new String[arrText.length]; 

     MyListAdapter myListAdapter = new MyListAdapter(); 
     ListView listView = (ListView) findViewById(R.id.listViewMain); 
     listView.setAdapter(myListAdapter); 
    } 

    private class MyListAdapter extends BaseAdapter{ 

     @Override 
     public int getCount() { 
      // TODO Auto-generated method stub 
      if(arrText != null && arrText.length != 0){ 
       return arrText.length; 
      } 
      return 0; 
     } 

     @Override 
     public Object getItem(int position) { 
      // TODO Auto-generated method stub 
      return arrText[position]; 
     } 

     @Override 
     public long getItemId(int position) { 
      // TODO Auto-generated method stub 
      return position; 
     } 

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

      //ViewHolder holder = null; 
      final ViewHolder holder; 
      if (convertView == null) { 

       holder = new ViewHolder(); 
       LayoutInflater inflater = ListviewActivity.this.getLayoutInflater(); 
       convertView = inflater.inflate(R.layout.lyt_listview_list, null); 
       holder.textView1 = (TextView) convertView.findViewById(R.id.textView1); 
       holder.editText1 = (EditText) convertView.findViewById(R.id.editText1); 

       convertView.setTag(holder); 

      } else { 

       holder = (ViewHolder) convertView.getTag(); 
      } 

      holder.ref = position; 

      holder.textView1.setText(arrText[position]); 
      holder.editText1.setText(arrTemp[position]); 
      holder.editText1.addTextChangedListener(new TextWatcher() { 

       @Override 
       public void onTex`enter code here`tChanged(CharSequence arg0, int arg1, int arg2, int arg3) { 
        // TODO Auto-generated method stub 

       } 

       @Override 
       public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, 
               int arg3) { 
        // TODO Auto-generated method stub 

       } 

       @Override 
       public void afterTextChanged(Editable arg0) { 
        // TODO Auto-generated method stub 
        arrTemp[holder.ref] = arg0.toString(); 
       } 
      }); 

      return convertView; 
     } 

     private class ViewHolder { 
      TextView textView1; 
      EditText editText1; 
      int ref; 
     } 


    } 

} 
+0

其實我解決它通過使用IF(((ListView控件)母公司).getSelectedItemPosition( )== ListV iew.INVALID_POSITION){ \t \t \t \t \t parent.requestFocus(); \t \t \t \t \t hidekeyboard(parent); –

相關問題