包含动态列表视图的Android动态标签(片段)

时间:2016-05-09 15:07:12

标签: android sqlite listview android-fragments tabs

我正在开发一个Android应用程序,其中我有一个片段,它将有动态标签(标签将取决于服务器数据),在这个动态标签中,每个片段重复使用相同的列表视图

1)现在的问题是如何从列表视图中的edittext获取数据 - 并且在每个片段中重复使用

2)当我在活动之间移动时,如何在每个列表视图中保留数据

有一个想法,我发布了我的应用程序的图像,我粗略地完成了

http://i.stack.imgur.com/l3ewK.png

如何保存数据SQLite数据库或共享首选项

请尽快回答

    public class ServicesListAdapter extends ArrayAdapter<Products> {
    ArrayList<Products> actorList;
    LayoutInflater vi;
    int Resource;

    public ServicesListAdapter(Context context, int resource, ArrayList<Products> objects) {
        super(context, resource, objects);
        vi = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        Resource = resource;
        actorList = objects;
    }

    @Override
    public int getItemViewType(int position) {
        return position;
    }

    @Override
    public int getViewTypeCount() {
        return 500;
    }



    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        // convert view = design
        View v = convertView;
        final ViewHolder holder;


        if (v == null) {
            v = vi.inflate(R.layout.booking_show, null);
            holder = new ViewHolder();
            holder.service = (TextView) v.findViewById(R.id.text1);
            holder.price = (TextView) v.findViewById(R.id.text2);
            v.setTag(holder);
        } else {
            holder = (ViewHolder) v.getTag();
        }       


               // String[] wash1 = actorList.get(position).getName().split(",", -1);



        Toast.makeText(getContext(),""+actorList.get(position).getName(),Toast.LENGTH_LONG).show();

        holder.service.setText(actorList.get(position).getName());

        holder.price.setText(actorList.get(position).getPrice());


        return v;
    }

    private static class ViewHolder {

        public TextView service;
        public TextView price;

    }



}

1 个答案:

答案 0 :(得分:0)

1)您需要在edittext中添加文本更改侦听器:yourEditText.addTextChangedListener(new TextWatcher()),您将在其中保存文本。

2)您需要创建DataBase或使用SharedPreferences来执行此操作。此外,如果您使用的是活动而不是片段,则可以使用意图传递数据。

创建SharedPreferences的简单示例:

SharedPreferences yourpreferences = getSharedPreferences("Specify_tag", MODE_PRIVATE);
SharedPreferences.Editor youreditor = yourpreferences.edit();
youreditor.putString("name", "Put_data_here");
youreditor.commit();

您不仅可以输入字符串,还可以输入几乎所有类型的数据;

要在其他活动中访问您的共享偏好设置,请使用:

SharedPreferences yourpreferences = getSharedPreferences("Specified_tag", MODE_PRIVATE);
your_variable = yourpreferences.getString("name_you_specify","def_value");

其中&#34; def_value&#34;是默认值(如果需要,可以更改)

我希望我的回答对你有帮助