java - 多个 Activity 结果不会添加数据

标签 java android database android-intent

在我的 Activity 中,我有一个 TextView 和两个校准按钮和 wifi。两个按钮都将进入扫描 Activity 以获得一些结果。不同之处在于,校准按钮会将结果保存到读数表,而 wifi 按钮会将结果保存到 wifi 表。但这两个按钮都只能将其插入到阅读表中。

这是 Activity 类

          calibrate.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {

                if(db.getFriendlyWifis(building).isEmpty()) {
                    Context context = getApplicationContext();
                    CharSequence text = "Select one or more Friendly WiFi";
                    int duration = Toast.LENGTH_SHORT;
                    Toast toast = Toast.makeText(context, text, duration);
                    toast.show();
                }
                else {
                    Intent intent = new Intent(getApplicationContext(), Scan.class);
                    intent.putExtra("POSITION_NAME", positionName.getText().toString());
                    intent.putExtra("isLearning", isLearning);
                    intent.putExtra("NUMBER_OF_SECONDS", readingCount);
                    startActivityForResult(intent, SCAN_REQUEST);
                }
            }
        });

        wifi.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {

                if(db.getFriendlyWifis(building).isEmpty()) {
                    Context context = getApplicationContext();
                    CharSequence text = "Select one or more Friendly WiFi";
                    int duration = Toast.LENGTH_SHORT;
                    Toast toast = Toast.makeText(context, text, duration);
                    toast.show();
                }
                else {
                    Intent intent = new Intent(getApplicationContext(), Scan.class);
                    intent.putExtra("POSITION_NAME", positionName.getText().toString());
                    intent.putExtra("isLearning", isLearning);
                    intent.putExtra("NUMBER_OF_SECONDS", readingCount);
                    startActivityForResult(intent, SCAN_REQUEST);
                }
            }
        });


    @Override
    protected void onActivityResult(int requestCode, int result, Intent intent) {
        if(requestCode == 0){

            if(result == RESULT_OK){
                positionData = (PositionData) intent
                        .getSerializableExtra("PositionData");
                Log.v("Before db : ", positionData.toString());
                db.addReadings(building, positionData);
                positions = db.getPositions(building);
                arrayAdapter = new ArrayAdapter<String>(this,
                        android.R.layout.simple_list_item_1, positions);
                positionsList.setAdapter(arrayAdapter);
                super.onActivityResult(requestCode, result, intent);
            }

        }

        if(requestCode == 1){

            if(result == RESULT_OK){
                positionData = (PositionData) intent
                        .getSerializableExtra("PositionData");
                Log.v("Before db : ", positionData.toString());
                db.addWifi(building, positionData);
                positiond = db.getWifi(building);
                arrayAdapter = new ArrayAdapter<String>(this,
                        android.R.layout.simple_list_item_1, positiond);
                positionsList.setAdapter(arrayAdapter);
                super.onActivityResult(requestCode, result, intent);
            }

        }
        }

最佳答案

您在两个 startActivityForResult() 上使用相同的请求代码 SCAN_REQUEST

calibrate.setOnClickListener() 中,调用 startActivityForResult,如下所示:startActivityForResult(intent, 0);

wifi.setOnClickListener 中,调用 startActivityForResult,如下所示:startActivityForResult(intent, 1);

或者,使用分配有 0 和 1 的相应变量来代替 0 和 1。

关于java - 多个 Activity 结果不会添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57353574/

相关文章:

java - 将 "select foo from Foo foo, Bar bar where ..."形式的HQL查询转换为Criteria查询

java - 如何增加Wildfly中的最大连接数、流和线程数?

java - 如何让模拟方法为任何参数返回不同的值(从数组)?

android - 错误 :Failed to resolve: com. google.android.gms :play-services-measurement:9. 2.0

c# - 创建和使用数据库并轻松安装的 GUI

java.lang.IllegalArgumentException : Property 'transactionManager' is required 异常

android - 嵌套 RecyclerView 一次创建所有 ViewHolders

android - 设置添加背景颜色以滑动图像

database - 在哪里可以找到有关 HTML 5 数据库 SQL 语法支持的权威引用?

mysql - 是否可以在MySQL中的数据库下创建数据库?