相关疑难解决方法(0)

Android:EditText在ListView中滚动丢失内容?

我有列表项目EditText,我不知道会有多少项目.我有一个问题,当我在输入一些文字EditText,然后向下滚动ListView,之后我已经向上滚动再次出现在我的第一个没有文字EditText,或有其他一些文本EditTextListView.

我已经尝试过TextWatcher,并将数据保存到数组中,但问题是返回的视图位置ListView并不总是正确的,所以我从数组中丢失了一些数据.

请帮忙.

这是我的代码:

public class EfficientAdapter extends BaseAdapter {

    private LayoutInflater mInflater;
    public String[] Current;
    ArrayList<String> MeterName, PreviousReading, Current_Reading;
    JSONArray getArray_Meter_Reading;

    public EfficientAdapter(Context context, JSONArray getArray_Meter_Reading) {
        mInflater = LayoutInflater.from(context);
        this.getArray_Meter_Reading = getArray_Meter_Reading;
        MeterName = new ArrayList<String>();
        PreviousReading = new ArrayList<String>();
        for (int i = 0; i < getArray_Meter_Reading.length(); i++) {
            try {
                String Meter_Name = getArray_Meter_Reading.getJSONObject(i)
                        .getString("MeterName").toString();
                String previous_Meter_Reading = getArray_Meter_Reading
                        .getJSONObject(i).getString("PrevMeterReading") …
Run Code Online (Sandbox Code Playgroud)

android listview android-edittext

10
推荐指数
2
解决办法
2万
查看次数

Android:ListView问题中的EditText

我的应用程序中有一个listview基本上是一个问卷,所以有一些用户需要填写的EditTexts.我遇到了以下问题:

  1. 一些EditText需要数字输入,所以我将相应的xml类型中的inputType设置为数字,但是,当我单击EditText时,会显示数字键盘,但几乎立即消失,并显示常规键盘.

  2. 可以想象,我需要存储用户在这些EditTexts中输入的值.我遇到的问题是,在我在SOME EditTexts中输入一些文本并向下滚动后,当我回去时文本消失了.您可以在我的代码中看到我试图阻止这一点,我应该提到它与复选框完美配合.

  3. 一开始我遇到了失去焦点的问题,但我解决了其他问题(将descendantFocusablity ="beforeDescendants"添加到ListView和windowSoftInputMode ="adjustPan").工作正常,但当EditText低于屏幕的一半时,一旦我开始输入它就会失去焦点. 列表适配器的getView方法:

    public View getView(final int position,View result,ViewGroup parent)
    {
    final ViewHolder vh;
    final Question question = values.get(position);
    if(holders[position]==null)
        vh = new ViewHolder();
    else
        vh = holders[position];
    
    LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    if(question.getQuestionType().equals(Question.TYPE_CLOSED))
    {
        result = inflater.inflate(R.layout.closed_question_list_item, null);
        vh.cb  = (CheckBox)result.findViewById(R.id.checkbox);
        vh.cb.setOnCheckedChangeListener(new OnCheckedChangeListener() 
        {
    
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
            {
                vh.isChecked      = isChecked;
                holders[position] = vh;
            }
        });
        vh.cb.setChecked(vh.isChecked);
    }
    
    else
    {
        result = inflater.inflate(R.layout.numeric_question_list_item, null);
        vh.et  = (EditText)result.findViewById(R.id.question_et);
        vh.et.addTextChangedListener(new TextWatcher()
        {
            @Override …
    Run Code Online (Sandbox Code Playgroud)

java android

9
推荐指数
2
解决办法
9740
查看次数

标签 统计

android ×2

android-edittext ×1

java ×1

listview ×1