簡體   English   中英

如何將內容保存在列表視圖的edittext中

[英]How do I save contents in an edittext that is in a listview

在選項卡式活動中,在選項卡1下,我有一個按鈕,可將編輯文本添加到屏幕上,每個按鈕一個,我希望用戶輸入一些文本。 但是,當列表足夠長時,當用戶打開鍵盤時,它將覆蓋列表。 之后,當鍵盤關閉時,在edittext上鍵入的所有內容都會消失。 所以我想知道如何將在edittext中鍵入的數據接收到arraylist中。 我知道我們需要獲取gettext.tostring(),但是我應該在哪里鍵入它以便自動將其添加到arraylist?

看看這個就知道問題了: https : //drive.google.com/open?id=15YccHFrKYdvoxnc-ftZT9WSfcEGJG5Os

這是我所做的:

public class tab1task extends Fragment {

ArrayList<String> tasks= new ArrayList<String>();
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    final View view1= inflater.inflate(R.layout.tasktab1,container,false);



    Button add_task = (Button) view1.findViewById(R.id.addtask);
    add_task.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            tasks.add("");
            ListView listView = (ListView) view1.findViewById(R.id.alltasks);

            customAdapter customAdapter = new customAdapter();

            listView.setAdapter(customAdapter);
        }
    });
    ListView listView = (ListView) view1.findViewById(R.id.alltasks);

    customAdapter customAdapter = new customAdapter();
    listView.setAdapter(customAdapter);
    return view1;

}





class customAdapter extends BaseAdapter {

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

        View view = getActivity().getLayoutInflater().inflate(R.layout.addtaskcustomlayout,null);
        EditText task = (EditText) view.findViewById(R.id.taskadd);
        task.setId(position);
        tasks.set(position,task.getText().toString());
        task.setText(tasks.get(position));



        return view;
    }



    @Override
public long getItemId(int position) {
    return position;
}

@Override
public Object getItem(int position) {
    return tasks.get(position);
}

@Override
public int getCount() {
    return tasks.size();
}
}

}

按下按鈕ADD后,您沒有保存您的值。

嘗試使用以下代碼:

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

        View view = getActivity().getLayoutInflater().inflate(R.layout.addtaskcustomlayout,null);
        EditText task = (EditText) view.findViewById(R.id.taskadd);
        task.setId(position);
        task.setText(tasks.get(position));
        TextWatcher tw = new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            // TODO Auto-generated method stub

            }

            @Override
            public void afterTextChanged(Editable s) {

                 tasks.set(position,s.toString());
            }
        };

        task.addTextChangedListener(tw);

        return view;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM