阅读android数据库。第一次询问价值并储存。如果插入值,则在下一个活动中显示该值

阅读android数据库。第一次询问价值并储存。如果插入值,则在下一个活动中显示该值,android,database,Android,Database,这个问题有点类似于我的共享偏好问题,只是它涉及到android数据库。我想在数据库中存储一个人首次启动应用程序时的工资。第二次启动时,他存储的工资将在下一个活动中以文本视图的形式查看 我大致知道如何跳过薪资提示,但不确定数据库。我的问题是,如何从数据库中读取工资不为空并在下一个活动中显示?我知道它在某种程度上涉及到一个if-else语句,比如>>(如果工资/数据库不为null,则以textview的形式开始下一个活动),但不确定如何对它们进行编码 (SavingsGuiderMenuActivi

这个问题有点类似于我的共享偏好问题,只是它涉及到android数据库。我想在数据库中存储一个人首次启动应用程序时的工资。第二次启动时,他存储的工资将在下一个活动中以文本视图的形式查看

我大致知道如何跳过薪资提示,但不确定数据库。我的问题是,如何从数据库中读取工资不为空并在下一个活动中显示?我知道它在某种程度上涉及到一个if-else语句,比如>>(如果工资/数据库不为null,则以textview的形式开始下一个活动),但不确定如何对它们进行编码

(SavingsGuiderMenuActivity包含一个指向SavingsGuiderAppActivity的链接,该链接要求工资(目标)然后将显示到SavingsGuiderInstance活动。这意味着用户只能访问SavingsGuiderApp活动一次,下次启动时,SavingsGuiderMenu活动将直接进入SavingsGuiderInstance活动)

以下是我的代码储蓄指南活动:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.menu);

    Bundle bundle = getIntent().getExtras();
    String name= bundle.getString("name");
TextView结果视图=(TextView)findViewById(R.id.view\u Name)

以下是我的储蓄指南插入活动代码。我觉得显示从savingsguiderappactivity页面插入数据库的数据有问题。就像我不应该使用Bundle Extras:

public class SavingsGuiderInsertActivity extends SavingsActivity {
/** Called when the activity is first created. */

String tag = "Savings Guider";
DecimalFormat df = new DecimalFormat("#.##");

protected void onCreate(Bundle savedInstance) {
    super.onCreate(savedInstance);
    setContentView(R.layout.insert);

    Bundle bundle = getIntent().getExtras();
    double target= bundle.getDouble("target");
    int interval= bundle.getInt("interval");
TextView targetView=(TextView)findViewById(R.id.view\u目标); TextView intervalView=(TextView)findViewById(R.id.view\u interval)


你可以这样做

  • 在第一次启动期间创建数据库表,但该表将为空

  • 检查表是否为空,什么也不做。否则,从数据库中获取数据并显示它们

  • 您可以使用SQLiteOpenHelper管理Android数据库

    为了检查表是否为空,可以执行以下操作

      public boolean isSalaryTableNotEmpty() {
          String sql = "SELECT COUNT(*) FROM SALARY_TABLE";
          Cursor cursor = database.rawQuery(sql, null);
          if(!cursor.moveToFirst()) {
              return false;
          }
          int count = cursor.getInt(0);
          cursor.close();
          return count > 0;
      }
    

    但是我如何测试记录是否被插入并移动到下一个意图,并检索记录以在下一页显示它呢?我也不希望应用程序提示用户更新我的答案。在代码中,我假设数据库对象已创建。键入它们后,我有错误。。。我更新了我的问题和原始代码。你添加了一堆代码,但你没有真正提到你面临的问题到底是什么。是的,我的代码片段会给出错误,因为您必须自己创建数据库对象。该代码段假定您已经创建了。为了使用数据库,您应该了解如何使用SQLiteOpenHelper。我不会帮助您编写整个解决方案:)
    public class SavingsGuiderInsertActivity extends SavingsActivity {
    /** Called when the activity is first created. */
    
    String tag = "Savings Guider";
    DecimalFormat df = new DecimalFormat("#.##");
    
    protected void onCreate(Bundle savedInstance) {
        super.onCreate(savedInstance);
        setContentView(R.layout.insert);
    
        Bundle bundle = getIntent().getExtras();
        double target= bundle.getDouble("target");
        int interval= bundle.getInt("interval");
    
        targetView.setText("$" + target);
        intervalView.setText("" + interval);
    
        double average = target/interval;
    
        TextView averageView = (TextView)findViewById(R.id.viewAverage);
        averageView.setText("You must save $" + df.format(average) + " everytime!");
    
    }
    
      public boolean isSalaryTableNotEmpty() {
          String sql = "SELECT COUNT(*) FROM SALARY_TABLE";
          Cursor cursor = database.rawQuery(sql, null);
          if(!cursor.moveToFirst()) {
              return false;
          }
          int count = cursor.getInt(0);
          cursor.close();
          return count > 0;
      }