【问题标题】:Android Dynamic tabs(fragments) with dynamic listviews带有动态列表视图的 Android 动态选项卡(片段)
【发布时间】:2016-05-09 15:07:12
【问题描述】:

我正在开发一个 android 应用程序,其中我有一个带有动态选项卡的片段(选项卡将取决于服务器数据),并且在这个动态选项卡中,每个片段都重复使用相同的列表视图

1) 现在的问题是我如何从 listview 中存在的 edittext 获取数据,在每个片段中重用 - 和 + 之间

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

有一个想法,我发布了我大致完成的应用程序的图像

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

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

请尽快回答

    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;

    }



}

【问题讨论】:

    标签: android sqlite listview android-fragments tabs


    【解决方案1】:

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

    2) 您需要创建数据库或使用 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");
    

    其中“def_value”是默认值(如果需要,可以更改)

    希望我的回答对你有帮助

    【讨论】:

    • 嗨,Alex RED,我在列表视图中使用片段,当我移动到另一个片段时,我如何保留数据,因为你可以看到当我移动到另一个片段列表时我作为链接给出的图片列表正在刷新并且edittext数据丢失了
    • 您需要使用 ViewHolder 创建自定义适配器。这将帮助您在片段之间切换,但是一旦您关闭应用程序,您的数据就会丢失。我认为您需要一个数据库来保存您的数据。
    • 是的,我已经创建了 View Holder,之前在我的问题中为您附加了该文件,请查看它并尝试添加功能以保存 listview 数据
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多