2014-08-29 2 views
0

У меня есть редактировать текст в каждом списке следует ряд, я хочу автоматическую прокрутку при появлении клавиатурыListView с редактированием текстом - автоматическая прокрутка при появлении клавиатуры

Я добавил этот код андроида: windowSoftInputMode = «adjustPan | stateHidden» в моей menifetch.xml, но не работал

мой GetView Java код

// Создать список адаптер

class CreateAdapter extends ArrayAdapter<String> { 
String[] strItecode=null; 
String[] strItem; 
String[] strQuantity; 
Context context; 

int temp; 
CreateAdapter(Context context, String[] strItemcode, String[] strItem, 
     String[] strQauntity) { 
    super(context, R.layout.create_list_item, R.id.txtItemcode, strItemcode); 
    this.context = context; 
    this.strItecode = strItemcode; 
    this.strItem = strItem; 
    this.strQuantity = strQauntity; 
    // text= new String[strItem.length]; 
} 
private int editingPosition = 0; 
private TextWatcher watcher = new TextWatcher() { 
      public void onTextChanged(CharSequence s, int start, int before, int count) { 
       text[editingPosition] = s.toString(); 
      } 
      public void beforeTextChanged(CharSequence s, int start, int count, int after) { } 
      public void afterTextChanged(Editable s) { } 
     }; 

public View getView(final int position, View convertView, ViewGroup parent) { 
    ViewHolder holder = null; 
    temp=position; 
    LayoutInflater mInflater = (LayoutInflater) context 
      .getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
    if (convertView == null) { 

     holder = new ViewHolder(); 
     convertView = mInflater 
       .inflate(R.layout.create_list_item, parent, false); 

     holder.txtItecode = (TextView) convertView 
       .findViewById(R.id.txtItemcode); 
     holder.txtItem = (TextView) convertView 
       .findViewById(R.id.txtItem); 
     holder.editQuantity = (EditText) convertView 
       .findViewById(R.id.editcreateQuantity); 
     holder.editQuantity.setTag(position); 

     convertView.setTag(holder); 
    } else { 
     holder = (ViewHolder) convertView.getTag(); 
    } 
    holder.editQuantity.removeTextChangedListener(watcher); 
    if(text[temp].contentEquals("0")) 
     holder.editQuantity.setText(""); 
    else 
    holder.editQuantity.setText(text[temp]); 

    holder.editQuantity.setOnFocusChangeListener(new OnFocusChangeListener() {  
     public void onFocusChange(View v, boolean hasFocus) { 
      if(hasFocus) editingPosition = position; 
     } 
    }); 

    holder.editQuantity.addTextChangedListener(watcher); 

    // The rest is good, just make sure to remove the call to setting the EditText's text at the end 
    holder.txtItecode.setText(strItecode[position]); 
    holder.txtItem.setText(strItem[position]); 
    // holder.editQuantity.setText(text[temp]); 

    return convertView; 


} 

class ViewHolder { 
    TextView txtItecode; 
    TextView txtItem; 
    EditText editQuantity; 
} 

}

Пожалуйста, помогите мне, как я могу установить автоматическую прокрутку при клавиатуре появляется

Заранее спасибо

ответ

0

Попробуйте этот

В вашей деятельности

@Override 
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
    final int proposedheight = MeasureSpec.getSize(heightMeasureSpec); 
    final int actualHeight = getHeight(); 

    if (actualHeight > proposedheight){ 
     scrollMyListViewToBottom(); 
    } 

    super.onMeasure(widthMeasureSpec, heightMeasureSpec); 
} 

private void scrollMyListViewToBottom() { 
    myListView.post(new Runnable() { 
     @Override 
     public void run() { 
      // Select the last row so it will scroll into view... 
      myListView.setSelection(myListAdapter.getCount() - 1); 
     } 
    }); 
} 
+0

Как я могу используйте этот код в своей деятельности – user3886688

+0

Надеюсь, он может вам помочь – Davide

+0

change th e function 'scrollMyListViewToBottom', указав определенную позицию в вашем« списке », как и элемент редактируемого элемента – Davide

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