0

Проблема: в Listview своп текст внутри EditText. это происходит, когда клавиатура невидима или видима. как показано ниже.Listview своп текст внутри EditText, когда kaypad невидимый или видимый

Image 1 : when keyboard is visible

Image 2 : when keyboard is invisible

Image 3 : when keyboard is visible

Код: ListView активность Класс:

public class DayPlannerFormActivity extends Activity { 

    private TextView txtHeader; 
    private Context mContext; 
    private ListView lvDayplannerFrom; 
    private FormDayPlannerAdapter adapter; 
    private Activity activity; 
    final Handler mHandler = new Handler(); 

    private Vector<DayPlannerForm> list = new Vector<DayPlannerForm>(); 
    final Runnable mUpdateResults = new Runnable() { 
     public void run() { 
      updateResultsInUi(); 
     } 
    }; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.dayplanner); 
     mContext = this;  
     activity = this; 
     txtHeader = (TextView) findViewById(R.id.txtHeader); 
     txtHeader.setText(R.string.haivlate); 
     lvDayplannerFrom = (ListView) findViewById(R.id.lvDayplanner); 
     startfetchOperation(); 

    } 

    private void updateResultsInUi() { 
     adapter= new FormDayPlannerAdapter(activity,list); 
     lvDayplannerFrom.setAdapter(adapter); 

    } 

    protected void startfetchOperation() { 
     Thread t = new Thread() { 
       @Override 
       public void run() { 
        getData(); 
       } 
      }; 
      t.start(); 
     } 

    private void getData() { 
    try{ 
     list.clear(); 
     DayPlannerForm dpf = new DayPlannerForm("Task Name 1","",""); 
     list.add(dpf); 
     dpf =new DayPlannerForm("Task Name 2","",""); 
     list.add(dpf); 
     mHandler.post(mUpdateResults); 
     } catch (Exception e){ 
       mHandler.post(mUpdateResults); 
     } 
    } 
    @Override 
protected void onDestroy() { 
    // TODO Auto-generated method stub 
    super.onDestroy(); 
    try{ 

     if(lvDayplannerFrom != null) 
      lvDayplannerFrom.setAdapter(null); 

    } catch (Exception e){} 
} 
} 

Код: Просмотр списка адаптер класса

public class FormDayPlannerAdapter extends BaseAdapter { 

    private Activity mActivity; 
    private static Vector<DayPlannerForm> list; 
    private static LayoutInflater inflater; 
    private Context mContext; 
    public FormDayPlannerAdapter (Activity _activity,Vector<DayPlannerForm> _list) { 
     mActivity = _activity; 
     mContext = _activity; 
     list = _list; 
     inflater = (LayoutInflater)mActivity.getSystemService(mActivity.LAYOUT_INFLATER_SERVICE); 
    } 

    public static class ViewHolder{ 
     public TextView txtTaskName; 
     public CheckBox chbAction; 
     public EditText edtDecription; 
    } 


    public int getCount() { 
     // TODO Auto-generated method stub 
     return list.size(); 
    } 


    public Object getItem(int position) { 
     // TODO Auto-generated method stub 
     return position; 
    } 


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


    public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 

     View vi=convertView; 
      ViewHolder holder; 
      if(convertView==null){ 
       vi = inflater.inflate(R.layout.dayplanner_listitem_form, null); 
       holder=new ViewHolder(); 
       holder.txtTaskName=(TextView)vi.findViewById(R.id.txtTaskName); 
       holder.chbAction = (CheckBox) vi.findViewById(R.id.chbAction); 
       holder.edtDecription = (EditText) vi.findViewById(R.id.edtDecription); 
       vi.setTag(holder); 
      } 
      else 
       holder=(ViewHolder)vi.getTag(); 

      holder.txtTaskName.setText(list.get(position).getTaskName()); 


     return vi; 
    } 

} 

Как решить эту проблему

ответ

1

Проблема решить распрощаться Добавление андроида: windowSoftInputMode = «adjustPan» этот атрибут в тег активности в Manifest.xml

0

На первый взгляд я думаю, что проблема, возникающая в следующем коде: -

DayPlannerForm dpf = new DayPlannerForm("Task Name 1","",""); 
     list.add(dpf); 
     dpf =new DayPlannerForm("Task Name 2","",""); 
     list.add(dpf); 

Вы должны принимать различные объекты DayPlannerForm класса для каждого Task Name.

DayPlannerForm dpf1,dpf2; 
     dpf1 = new DayPlannerForm("Task Name 1","",""); 
     list.add(dpf1); 
     dpf2 =new DayPlannerForm("Task Name 2","",""); 
     list.add(dpf2); 

Я думаю, что это может решить вашу проблему.

+0

Еще такая же проблема !!! –

 Смежные вопросы

  • Нет связанных вопросов^_^