setContentView(R.layout.activity_sqlite_test);
时间: 2024-04-19 09:30:24 浏览: 162
`setContentView(R.layout.activity_sqlite_test);` 是 Android 中用于设置当前 Activity 的布局文件的方法。
在这段代码中,通过传入布局文件 `R.layout.activity_sqlite_test`,将该布局文件设置为当前 Activity 的内容视图。这意味着在该 Activity 中将显示布局文件中定义的界面组件和样式。
注意,`R.layout.activity_sqlite_test` 是一个资源标识符,它指向位于 res/layout 目录下的布局文件 activity_sqlite_test.xml。你可以根据自己的需要替换为你项目中实际的布局文件标识符。
相关问题
android sqlite 存图片示例
以下是一个完整的 Android SQLite 存储图片的示例代码:
1. 在 layout 目录下创建一个名为 activity_main.xml 的布局文件,添加一个 ImageView 和一个 Button:
```xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/image_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/placeholder" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text="Choose Image" />
</RelativeLayout>
```
2. 在 MainActivity.java 中实现图片的存储和显示逻辑:
```java
public class MainActivity extends AppCompatActivity {
private ImageView imageView;
private Button button;
private Bitmap selectedBitmap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = findViewById(R.id.image_view);
button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK && data != null) {
Uri uri = data.getData();
try {
selectedBitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), uri);
imageView.setImageBitmap(selectedBitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void saveImage(View view) {
if (selectedBitmap != null) {
SQLiteDatabase db = openOrCreateDatabase("MyDatabase", Context.MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS Images (Name VARCHAR, Data BLOB)");
ContentValues values = new ContentValues();
values.put("Name", "test");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
selectedBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
values.put("Data", byteArray);
db.insert("Images", null, values);
db.close();
Toast.makeText(this, "Image saved to database", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "No image selected", Toast.LENGTH_SHORT).show();
}
}
public void loadImage(View view) {
SQLiteDatabase db = openOrCreateDatabase("MyDatabase", Context.MODE_PRIVATE, null);
Cursor cursor = db.rawQuery("SELECT * FROM Images WHERE Name='test'", null);
if (cursor.moveToFirst()) {
byte[] byteArray = cursor.getBlob(1);
Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
imageView.setImageBitmap(bitmap);
} else {
Toast.makeText(this, "Image not found in database", Toast.LENGTH_SHORT).show();
}
cursor.close();
db.close();
}
}
```
3. 在 AndroidManifest.xml 中添加读取外部存储权限:
```xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
```
在运行应用程序时,点击 Choose Image 按钮可以选择图片并在 ImageView 中显示。点击 Save Image 按钮将所选图片存储到 SQLite 数据库中,点击 Load Image 按钮从数据库中读取图片并在 ImageView 中显示。
在模拟器上运行例程databaseprovider和privodertest。在provertest的界面上添加一个button为“Add to Category“,对button添加监听器,当button被点击的时候,能够为databaseprovider的Category表添加一个条目,内容为category_name:”你的学号“,category_code:"你的姓名"。对providertest的运行界面截图,对databaseprovider有内容的category表截图上传。
好的,我明白了你的问题。由于我是一个语言模型AI,无法进行具体的代码操作和界面截图等操作,但我可以为你提供一些思路和建议:
1. 在privodertest的界面上添加一个button为“Add to Category“,对button添加监听器。
2. 当button被点击的时候,能够为databaseprovider的Category表添加一个条目,内容为category_name:”你的学号“,category_code:"你的姓名"。这可以通过在监听器中调用databaseprovider的方法来实现。
3. 在运行界面中,可以通过截图工具进行截图,然后上传到相应的位置。
以下是一个伪代码示例,供参考:
```java
public class ProviderTest extends Activity implements OnClickListener {
private Button addButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_provider_test);
addButton = (Button) findViewById(R.id.add_button);
addButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.add_button:
DatabaseProvider databaseProvider = new DatabaseProvider(this);
databaseProvider.open();
databaseProvider.createCategory("你的学号", "你的姓名");
databaseProvider.close();
break;
default:
break;
}
}
}
```
其中,`createCategory`方法是在`DatabaseProvider`类中自定义的方法,可以根据自己的需求进行实现。同时,需要在`AndroidManifest.xml`文件中声明Provider:
```xml
<application>
<provider
android:name=".DatabaseProvider"
android:authorities="com.example.provider.DatabaseProvider"
android:exported="false" >
</provider>
</application>
```
最后,对于`databaseprovider`有内容的category表截图,可以在模拟器中打开相应的数据库管理工具,如`SQLite Database Browser`,连接模拟器中的数据库,然后截取相应表格的内容即可。
阅读全文