Android 开发新闻系统:使用 SQLite 数据库保存新闻的布局文件代码
以下是一个简单的布局文件代码示例,用于在 Android 开发中保存新闻到 SQLite 数据库:
<!-- activity_main.xml -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/editTextTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Title" />
<EditText
android:id="@+id/editTextContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Content" />
<Button
android:id="@+id/buttonSave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Save" />
</LinearLayout>
这个布局文件包含一个标题输入框(EditText)用于输入新闻标题,一个内容输入框(EditText)用于输入新闻内容,以及一个保存按钮(Button)用于保存新闻到数据库。
在相应的 Activity 中,你可以使用以下代码来实现保存新闻到 SQLite 数据库的逻辑:
// MainActivity.java
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private EditText editTextTitle, editTextContent;
private Button buttonSave;
private NewsDatabaseHelper databaseHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editTextTitle = findViewById(R.id.editTextTitle);
editTextContent = findViewById(R.id.editTextContent);
buttonSave = findViewById(R.id.buttonSave);
databaseHelper = new NewsDatabaseHelper(this);
buttonSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
saveNews();
}
});
}
private void saveNews() {
String title = editTextTitle.getText().toString().trim();
String content = editTextContent.getText().toString().trim();
SQLiteDatabase db = databaseHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(NewsContract.NewsEntry.COLUMN_TITLE, title);
values.put(NewsContract.NewsEntry.COLUMN_CONTENT, content);
long newRowId = db.insert(NewsContract.NewsEntry.TABLE_NAME, null, values);
if (newRowId == -1) {
Toast.makeText(this, 'Error saving news', Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, 'News saved with ID: ' + newRowId, Toast.LENGTH_SHORT).show();
editTextTitle.setText("");
editTextContent.setText("");
}
}
}
在这个示例中,我们首先在 Activity 的 onCreate 方法中获取布局文件中的 EditText 和 Button 实例,并为 Button 设置一个点击事件监听器。当点击保存按钮时,调用 saveNews 方法来保存新闻到数据库。
在 saveNews 方法中,我们首先获取用户输入的标题和内容,并使用数据库助手类(NewsDatabaseHelper)获取一个可写的 SQLiteDatabase 实例。然后,我们创建一个 ContentValues 对象,并使用 put 方法将新闻标题和内容放入 ContentValues 对象中。
接下来,我们调用 SQLiteDatabase 的 insert 方法将 ContentValues 对象中的数据插入到数据库的表中。如果插入成功,insert 方法将返回新插入行的行 ID(newRowId),否则返回 -1。我们可以根据返回值判断保存是否成功,并显示相应的 Toast 消息。
最后,我们清空标题和内容输入框中的文本,以便用户输入下一条新闻。
请注意,这只是一个简单的示例,你可能需要根据你的实际需求进行适当的修改和扩展。
原文地址: http://www.cveoy.top/t/topic/f33U 著作权归作者所有。请勿转载和采集!