带有editText的Android listView:如何编辑文本?

时间:2015-11-25 11:29:50

标签: android listview android-listview android-edittext android-adapter

我创建了一个listview,其中包含textview和edittext。

我还做了一个带字符串arraylist作为参数的适配器。

我想用edittext编辑我的arraylist的元素,但它只适用于数字,而我想编辑文本。 当inputtype为“text”时,“onFocusChange”不起作用,我无法输入文本,但当inputtype为数字时,它可以正常工作。

以下是我的代码摘录:

适配器:

public View getView(int position, View view, ViewGroup parent) {

    ViewHolder viewHolder;
    if (view == null) {
        viewHolder = new ViewHolder();
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = inflater.inflate(R.layout.lv_editetext_reponse, null, true);
        viewHolder.textView1 = (TextView) view.findViewById(R.id.Item_name);
        viewHolder.editText1 = (EditText) view.findViewById(R.id.Item_price);
        view.setTag(viewHolder);
    } else {
        viewHolder = (ViewHolder) view.getTag();
    }
    viewHolder.textView1.setText(reponses.get(position));
    viewHolder.editText1.setId(position);
    viewHolder.ref = position;

    // Add listener for edit text
    viewHolder.editText1
            .setOnFocusChangeListener(new View.OnFocusChangeListener() {
                @Override
                public void onFocusChange(View v, boolean hasFocus) {
                    if (!hasFocus) {
                        int itemIndex = v.getId();
                        String enteredPrice = ((EditText) v).getText()
                                .toString();
                        reponses.set(itemIndex, enteredPrice);
                    }
                }
            });
    return view;
}

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

XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >

<TextView
    android:id="@+id/Item_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="20sp"
    android:paddingTop="5dp"/>

<EditText
    android:id="@+id/Item_price"
    android:layout_width="180dp"
    android:layout_height="wrap_content"
    android:layout_alignParentRight = "true"
    android:layout_gravity="right"
    android:hint="Price"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:editable="true"
    android:lines="1" />

</RelativeLayout>

0 个答案:

没有答案