Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android中保存更改_Java_Android_Android Fragments_Android Button_Android Tablayout - Fatal编程技术网

Java 在android中保存更改

Java 在android中保存更改,java,android,android-fragments,android-button,android-tablayout,Java,Android,Android Fragments,Android Button,Android Tablayout,在我的HomeActivity中,我有一个ButtonNavigationView,其中有4个带有片段的项目,其中一个(片段)中有一个按钮,可以将动态视图添加到线性布局中,我希望在切换到ButtonNavigationView上的另一个选项卡时,它们不会消失 正如您在第一幅图中看到的,我通过单击按钮添加了一些动态视图 然后在第二张图片中,我切换到ButtonVigationView上的另一个选项卡 在第三个图像中,当我返回第二个选项卡时,动态生成的视图都消失了,我可以做些什么来保存它们 家庭活动

在我的HomeActivity中,我有一个ButtonNavigationView,其中有4个带有片段的项目,其中一个(片段)中有一个按钮,可以将动态视图添加到线性布局中,我希望在切换到ButtonNavigationView上的另一个选项卡时,它们不会消失

正如您在第一幅图中看到的,我通过单击按钮添加了一些动态视图 然后在第二张图片中,我切换到ButtonVigationView上的另一个选项卡 在第三个图像中,当我返回第二个选项卡时,动态生成的视图都消失了,我可以做些什么来保存它们

家庭活动 我需要保存更改的片段
public View onCreateView(@NonNull final LayoutInflater充气机、@Nullable ViewGroup container、@Nullable Bundle savedInstanceState){
视图v=充气机。充气(R.layout.fragment\u newfactor,容器,假);
ln=v.findViewById(R.id.itemsContainer);
提交=v.findviewbyd(R.id.submit);
editText2=v.findViewById(R.id.customerName);
setRetainInstance(真);
dbConnector=新的dbConnector(getContext(),null,null,1);
游标c=dbConnector.get().rawQuery(“从类别中选择*项”,null);
while(c.moveToNext()){
final int id=c.getInt(c.getColumnIndex(“id”);
字符串名称=c.getString(c.getColumnIndex(“名称”));
最终视图行视图=充气机。充气(R.layout.field_按钮,空);
Button fieldCreator=rowView.findViewById(R.id.fieldCreator);
fieldContainer=rowView.findviewbyd(R.id.field\u container);
fieldCreator.setText(名称);
fieldCreator.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
LinearLayout fieldContainer=((RelativeLayout)v.getParent()).findViewById(R.id.field_容器);
fieldContainer.removeallview();
最终光标c=dbConnector.get().rawQuery(“从产品中选择*,其中category_id=“+id,null”);
while(c.moveToNext()){
最终视图行视图=充气机充气(R.layout.field,null);
TextView productName=rowView.findViewById(R.id.product\u名称);
final EditText EditText=rowView.findviewbyd(R.id.number);
按钮添加=rowView.findviewbyd(R.id.add);
按钮移除=rowView.findviewbyd(R.id.remove);
最终文本视图productPrice=rowView.findViewById(R.id.product\U price);
productName.setText(c.getString(c.getColumnIndex(“名称”));
final int price_db=Integer.parseInt(c.getString(c.getColumnIndex(“price”));
editText.addTextChangedListener(新的TextWatcher(){
@凌驾
更改前文本之前的公共void(字符序列s、int start、int count、int after){
}
@凌驾
public void onTextChanged(字符序列、int start、int before、int count){
}
@凌驾
公共无效后文本已更改(可编辑){
如果(!editText.getText().toString()等于(“”){
int price=Integer.parseInt(editText.getText().toString())*price\u db;
productPrice.setText(价格+“”);
}
}
});
add.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
int num=Integer.parseInt(editText.getText().toString());
int num_num=num+1;
editText.setText(num_num+“”);
}
});
remove.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
int num=Integer.parseInt(editText.getText().toString());
如果(数值>0){
int num_num=num-1;
editText.setText(num_num+“”);
}
}
});
fieldContainer.addView(行视图);
}
}
});
ln.addView(行视图);
}
submit.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
JSONArray JSONArray=新的JSONArray();
对于(int i=0;iprivate TextView mTextMessage;

    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {

            Fragment selectedFragment = null;

            switch (item.getItemId()) {
                case R.id.navigation_home:
                    selectedFragment = new FactorsFragment();
                    break;
                case R.id.navigation_dashboard:
                    selectedFragment = new NewFactorFragment();
                    break;
                case R.id.navigation_notifications:
                    selectedFragment = new ProductsFragment();
                    break;
                case R.id.navigation_checklist:
                    selectedFragment = new CheckList();
                    break;
            }

            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,selectedFragment).commit();

            return true;
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);

        BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
        navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);

        navigation.setSelectedItemId(R.id.navigation_dashboard);

        SQLiteStudioService.instance().start(this);

        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new NewFactorFragment());
    }

    @Override
    protected void onDestroy() {
        SQLiteStudioService.instance().stop();
        super.onDestroy();
    }
public View onCreateView(@NonNull final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_newfactor, container, false);
        ln = v.findViewById(R.id.itemsContainer);
        submit = v.findViewById(R.id.submit);
        editText2 = v.findViewById(R.id.customerName);
        setRetainInstance(true);

        dbConnector = new DbConnector(getContext(), null, null, 1);
        Cursor c = dbConnector.get().rawQuery("SELECT * FROM categories", null);


        while (c.moveToNext()) {

            final int id = c.getInt(c.getColumnIndex("id"));
            String name = c.getString(c.getColumnIndex("name"));

            final View rowView = inflater.inflate(R.layout.field_button, null);
            Button fieldCreator = rowView.findViewById(R.id.fieldCreator);
            fieldContainer = rowView.findViewById(R.id.field_container);
            fieldCreator.setText(name);
            fieldCreator.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    LinearLayout fieldContainer = ((RelativeLayout) v.getParent()).findViewById(R.id.field_container);
                    fieldContainer.removeAllViews();
                    final Cursor c = dbConnector.get().rawQuery("SELECT * FROM product WHERE category_id = " + id, null);

                    while (c.moveToNext()) {
                        final View rowView = inflater.inflate(R.layout.field, null);

                        TextView productName = rowView.findViewById(R.id.product_name);
                        final EditText editText = rowView.findViewById(R.id.number);
                        Button add = rowView.findViewById(R.id.add);
                        Button remove = rowView.findViewById(R.id.remove);
                        final TextView productPrice = rowView.findViewById(R.id.product_price);

                        productName.setText(c.getString(c.getColumnIndex("name")));
                        final int price_db = Integer.parseInt(c.getString(c.getColumnIndex("price")));


                        editText.addTextChangedListener(new TextWatcher() {
                            @Override
                            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

                            }

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


                            }

                            @Override
                            public void afterTextChanged(Editable s) {
                                if (!editText.getText().toString().equals("")) {
                                    int price = Integer.parseInt(editText.getText().toString()) * price_db;
                                    productPrice.setText(price + "");
                                }
                            }
                        });

                        add.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                int num = Integer.parseInt(editText.getText().toString());
                                int num_num = num + 1;
                                editText.setText(num_num + "");
                            }
                        });

                        remove.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                int num = Integer.parseInt(editText.getText().toString());
                                if (num > 0) {
                                    int num_num = num - 1;
                                    editText.setText(num_num + "");
                                }

                            }
                        });


                        fieldContainer.addView(rowView);

                    }


                }
            });

            ln.addView(rowView);

        }

        submit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                JSONArray jsonArray = new JSONArray();
                for (int i = 0; i < ln.getChildCount(); i++) {
                    RelativeLayout button = (RelativeLayout) ln.getChildAt(i);
                    LinearLayout itemCon = (LinearLayout) button.getChildAt(1);
                    for (int o = 0; o < itemCon.getChildCount(); o++) {
                        JSONObject jsonObject = new JSONObject();
                        LinearLayout field = (LinearLayout) itemCon.getChildAt(o);
                        EditText number = (EditText) field.getChildAt(2);
                        TextView price = (TextView) field.getChildAt(0);
                        TextView name = (TextView) field.getChildAt(3);
                        if (!number.getText().toString().equals("0")) {
                            try {
                                jsonObject.put("product_name", name.getText());
                                jsonObject.put("number", number.getText());
                                jsonObject.put("price", price.getText());
                                jsonObject.put("buyer_name",editText2.getEditText().getText().toString());
                            } catch (JSONException e) {

                            }
                        }
                        jsonArray.put(jsonObject);
                    }

                }

                ContentValues values = new ContentValues();
                values.put("name",editText2.getEditText().getText().toString());
                values.put("items",jsonArray.toString());

                Log.e("JSONobject",jsonArray.toString());

                try {
                    long id = dbConnector.get().insert("factors",null,values);
                }catch (SQLiteException exception){
                    Log.e("ERROR",exception.getMessage());
                }
            }
        });


        return v;
    }