Java 从错误的数据库检索数据

Java 从错误的数据库检索数据,java,android,android-sqlite,Java,Android,Android Sqlite,我的应用程序中有两个SQLiteDatabase。从DataEntryHome类检索用户的输入。另一个从GarmentEntry类检索用户的输入。我还有两个活动,它们以列表视图的形式显示用户的输入。这些内容显示在“活动回顾”页面和“回顾订单详细信息”中 作为一名新的java程序员,为了使事情变得更简单,我为单独的数据库使用了单独的dbHelper、DataProvider和ListDataAdapter类 我的问题是,在RecapOrderDetails类中,ListView由DataEntry

我的应用程序中有两个SQLiteDatabase。从DataEntryHome类检索用户的输入。另一个从GarmentEntry类检索用户的输入。我还有两个活动,它们以列表视图的形式显示用户的输入。这些内容显示在“活动回顾”页面和“回顾订单详细信息”中

作为一名新的java程序员,为了使事情变得更简单,我为单独的数据库使用了单独的dbHelper、DataProvider和ListDataAdapter类

我的问题是,在RecapOrderDetails类中,ListView由DataEntryHome而不是GarmentEntry中的内容填充。页面中的ListView正常工作

以下是我认为相关的所有代码:

DataEntryHome:

public class DataEntryHome extends AppCompatActivity implements TextWatcher{

private static Button DataEntryButtonN, SaveDataButton, PreviewButton;
Context context = this;
UserDbHelper userDbHelper;
SQLiteDatabase sqLiteDatabase;
EditText ContactName,ContactSurname,ContactEmail,ContactPhone,ContactAddInfo;
Button saveDetails;
public static ArrayList<String> CUSTOMERS = new ArrayList<String>();
String customers[];

@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
    super.onCreate(savedInstanceState, persistentState);

    final EditText surnameArray = (EditText) findViewById(R.id.customerSurnameEntry);

    saveDetails = (Button) findViewById(R.id.saveDetailsButton);
    saveDetails.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String erm=surnameArray.getText().toString().trim();
            if(erm.length() != 0){
                CUSTOMERS.add(erm);
                surnameArray.setText("");
            }
            Intent arrayItems = new Intent(DataEntryHome.this, RecapPage.class);
            Bundle arrayItemsBundle = new Bundle();

        }
    });

}

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

    ContactName = (EditText) findViewById(R.id.customerFirstNameEntry);
    ContactName.addTextChangedListener(this);
    ContactSurname = (EditText) findViewById(R.id.customerSurnameEntry);
    ContactSurname.addTextChangedListener(this);
    ContactEmail = (EditText) findViewById(R.id.customerEmail);
    ContactEmail.addTextChangedListener(this);
    ContactPhone = (EditText) findViewById(R.id.customerNumber);
    ContactPhone.addTextChangedListener(this);
    ContactAddInfo = (EditText) findViewById(R.id.addInfo1);

    setupSaveDataButton();


}

public void addContact(View view) {

    String name = ContactName.getText().toString();
    String surname = ContactSurname.getText().toString();
    String email = ContactEmail.getText().toString();
    String phone = ContactPhone.getText().toString();
    String add_info = ContactAddInfo.getText().toString();

    userDbHelper = new UserDbHelper(context);
    sqLiteDatabase = userDbHelper.getWritableDatabase();
    userDbHelper.addInformation(name,surname,email,phone,add_info,sqLiteDatabase);
    Toast.makeText(getBaseContext(), "Data saved", Toast.LENGTH_SHORT).show();
    userDbHelper.close();
}
GarmentEntry:

public class GarmentEntry extends AppCompatActivity {

Spinner tcshenspinner, backprintoptionsspinner, tcbackhenspinner, cosspinner, ppspinner;
ArrayAdapter<CharSequence> tcshenspinneradapter, backprintoptionsspinneradapter, tcbackhenspinneradapter,
        cosspinneradapter, ppspinneradapter;
Button nextButton1;
public static ImageView imagePreview;
public static final String IMAGE_RES_ID_1 = "image_res_id_1";
Context contextOrder = this;
OrderDbHelper userDbHelperOrder;
SQLiteDatabase sqLiteDatabaseOrder;
EditText OrderNoOfShirts, OrderFrontText,OrderShirt1;
Spinner OrderColourOfShirts, OrderPrintPosition, OrderColourOfText, OrderBackPrint, OrderBackColour;
Button saveOrderDetails;
public static ArrayList<String> ORDERINFO = new ArrayList<>();
String orderinfo[];


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.garment_entry);

    final EditText shirtArray = (EditText)findViewById(R.id.noofshirts);

    saveOrderDetails = (Button)findViewById(R.id.saveOrderDetails);
    saveOrderDetails.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String erm=shirtArray.getText().toString().trim();
            if (erm.length() != 0){
                ORDERINFO.add(erm);
                shirtArray.setText("");
            }
            Intent arrayItemsOrder = new Intent(GarmentEntry.this, RecapOrderDetails.class);
            Bundle arrayItemsOrderBundle = new Bundle();
        }
    });

    OrderNoOfShirts = (EditText)findViewById(R.id.noofshirts);
    OrderColourOfShirts = (Spinner)findViewById(R.id.cosspinner);
    OrderFrontText = (EditText)findViewById(R.id.fronttexthint);
    OrderPrintPosition = (Spinner)findViewById(R.id.ppspinner);
    OrderColourOfText = (Spinner)findViewById(R.id.tcshenspinner);
    OrderBackPrint = (Spinner)findViewById(R.id.backprintoptionsspinner);
    OrderBackColour = (Spinner)findViewById(R.id.tcbackhenspinner);
    OrderShirt1 = (EditText)findViewById(R.id.nnsshirt1);

}

public void addOrder(View view){

    String no_of_shirts = OrderNoOfShirts.getText().toString();
    String colour_of_shirts = OrderColourOfShirts.getSelectedItem().toString();
    String front_text = OrderFrontText.getText().toString();
    String print_position = OrderPrintPosition.getSelectedItem().toString();
    String colour_of_text = OrderColourOfText.getSelectedItem().toString();
    String back_print = OrderBackPrint.getSelectedItem().toString();
    String back_colour = OrderBackColour.getSelectedItem().toString();
    String shirt_1 = OrderShirt1.getText().toString();

    userDbHelperOrder = new OrderDbHelper(contextOrder);
    sqLiteDatabaseOrder = userDbHelperOrder.getWritableDatabase();
    userDbHelperOrder.addInformationOrder(no_of_shirts,colour_of_shirts,front_text,print_position,colour_of_text,back_print,
            back_colour,shirt_1, null,null,null,null,null,null,null,null,null,null,sqLiteDatabaseOrder);
    Toast.makeText(getBaseContext(), "Data saved", Toast.LENGTH_SHORT).show();
    userDbHelperOrder.close();

}
我认为错误数据被传递到第二个数据库的原因是:

if (cursorOrder.moveToFirst()){
        do {

            String no_of_shirts, colour_of_shirts, front_text, print_position, text_colour, back_print, back_colour, shirt1;
            no_of_shirts = cursorOrder.getString(0);
            colour_of_shirts = cursorOrder.getString(1);
            front_text = cursorOrder.getString(2);
            print_position = cursorOrder.getString(3);
            text_colour = cursorOrder.getString(4);
            /*back_print = cursorOrder.getString(5);
            back_colour = cursorOrder.getString(6);
            shirt1 = cursorOrder.getString(7);*/
            DataProviderOrder dataProviderOrder = new DataProviderOrder(no_of_shirts,colour_of_shirts,front_text,print_position,
                    text_colour,null,null,null);
            listDataAdapterOrder.add(dataProviderOrder);
是否为第一个数据库(DataEntryHome)保留了值0-4

我还认为:

userDbHelperOrder = new UserDbHelper(getApplicationContext());
sqLiteDatabaseOrder = userDbHelperOrder.getReadableDatabase();
cursorOrder = userDbHelperOrder.getInformation(sqLiteDatabaseOrder);
与这件事有关。

我已经弄明白了

关于“活动详细信息”,请执行以下操作:

userDbHelperOrder = new UserDbHelper(getApplicationContext());
就是这个问题

要解决它,我必须执行以下操作:

OrderDbHelper = orderDbHelperOrder
在主要方法中

然后更换

userDbHelperOrder = new UserDbHelper(getApplicationContext());

OrderDbHelper = orderDbHelperOrder
userDbHelperOrder = new UserDbHelper(getApplicationContext());
orderDbHelperOrder = new OrderDbHelper(getApplicationContext());