gpt4 book ai didi

java - 从 SQLite 获取数据到新类

转载 作者:行者123 更新时间:2023-12-01 11:05:16 24 4
gpt4 key购买 nike

我对 Android 开发还是个新手,现在面临着使用 intentSQLite 获取数据到另一个 class 的问题。我已经阅读了很多文档,但仍然未能达到预期的结果。 DisplayData.java 上没有数据显示。我是不是漏掉了什么???下面是我的代码 fragment 。

WorkDetailsTable.java

 Button btn1=(Button)findViewById(R.id.button2);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
AlertDialog.Builder builder=new AlertDialog.Builder(WorkDetailsTable.this);
builder.setTitle("Data Saved");
builder.setMessage("Are you sure you want to save?");
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int ii) {
long ab = ts.insertTimeSheet(name, weather, date, status);


Toast.makeText(context, "Data Saved", Toast.LENGTH_SHORT).show();
Intent intent=new Intent(WorkDetailsTable.this,DisplayData.class);
intent.putExtra("name",name);
startActivity(intent);
}

});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int ii) {
dialog.dismiss();
}
});
builder.show();


}
});
}

DisplayData.java

public class DisplayData extends AppCompatActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.displaydata);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
final String name1 = getIntent().getExtras().getString("name");
if(name1=="Lim X Y")
{
SQLiteDatabase db=(new MyDatabaseHelper(this)).getReadableDatabase();
Cursor cursor=db.rawQuery("SELECT weather,date,status FROM Information WHERE name = ?",new String[]{""+name1});
if(cursor.getCount()==1)
{
cursor.moveToFirst();
cursor.getString(cursor.getColumnIndex("weather"));
cursor.getString(cursor.getColumnIndex("date"));
cursor.getString(cursor.getColumnIndex("status"));

}

}

}
}

InfoAPI.java

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.example.project.project.database.MyDatabaseHelper;
import android.content.Context;
import android.database.SQLException;
import android.content.ContentValues;

public class InfoAPI {
private SQLiteDatabase database;
private MyDatabaseHelper dbHelper;
public String[] allColumns={MyDatabaseHelper.ID,MyDatabaseHelper.Name,MyDatabaseHelper.Weather,MyDatabaseHelper.Date,MyDatabaseHelper.Status};

public InfoAPI(Context context)
{
dbHelper=new MyDatabaseHelper(context);
}

public void open() throws SQLException {
database = dbHelper.getWritableDatabase();

}

public void close() {
dbHelper.close();
}
public long insertTimeSheet(String name,String weather,String date,String status){
database=dbHelper.getWritableDatabase();
ContentValues values=new ContentValues();
values.put(MyDatabaseHelper.Name,name);
values.put(MyDatabaseHelper.Weather,weather);
values.put(MyDatabaseHelper.Date,date);
values.put(MyDatabaseHelper.Status, status);
database.insert(MyDatabaseHelper.TABLE_INFO, null, values);
Cursor cursor = database.rawQuery("SELECT MAX(ID) FROM "+ MyDatabaseHelper.TABLE_INFO, null);
if(cursor.getCount()>0){
cursor.moveToFirst();
return cursor.getLong(0);
}

return 0;
}
}

displaydata.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">

<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp" >

<TableLayout

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:stretchColumns="|"

android:layout_marginBottom="25dp">


<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/tableRow1">



<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView10"
android:background="@drawable/cell_shape"
android:textSize="17sp"
android:text="weather"/>

<TextView android:id="@+id/textView111"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="17sp"
android:background="@drawable/cell_shape"
android:text="date"/>

<TextView android:id="@+id/textView11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="17sp"
android:background="@drawable/cell_shape"
android:text="status"/>



</TableRow>
</TableLayout>
</HorizontalScrollView>
</LinearLayout>
</ScrollView>

最佳答案

当您调用ts.insertTimeSheet(name,weather,date,status)时,您是否调试并检查过数据是否实际存储在数据库中以及变量name,weather 、日期状态 包含一些值吗?

您还可以使用name1.equalsname1.equalsIgnoreCase进行String比较。

关于java - 从 SQLite 获取数据到新类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33029908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com