Java 安卓SQLite数据库“;R不能解析为变量";
我刚开始学习Android编程,当时我正试图创建一个简单的Android SQLite数据库,我在“src”中的“java”文件中遇到了一些错误,例如“R无法解析为变量”,我在菜单文件夹中的xml中出现了一个错误,即错误:找不到与给定名称匹配的资源(在“title”处,值为“@string/action\u settings”)。database\u android\u satu.xml/DatabaseAndroid/res/菜单行5安卓AAPT问题“ 我非常感谢你的善意回答,也许还有一些建议 以下是我的.java文件:Java 安卓SQLite数据库“;R不能解析为变量";,java,android,xml,r.java-file,Java,Android,Xml,R.java File,我刚开始学习Android编程,当时我正试图创建一个简单的Android SQLite数据库,我在“src”中的“java”文件中遇到了一些错误,例如“R无法解析为变量”,我在菜单文件夹中的xml中出现了一个错误,即错误:找不到与给定名称匹配的资源(在“title”处,值为“@string/action\u settings”)。database\u android\u satu.xml/DatabaseAndroid/res/菜单行5安卓AAPT问题“ 我非常感谢你的善意回答,也许还有一些建议
package com.db.satu;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast;
public class DatabaseAndroidSatu extends Activity {
DatabaseManager dm;
EditText nama, hobi;
Button addBtn;
TableLayout tabel4data;// tabel for data
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
dm = new DatabaseManager(this);
tabel4data = (TableLayout) findViewById(R.id.tabel_data);
nama = (EditText) findViewById(R.id.inNama);
hobi = (EditText) findViewById(R.id.inHobi);
addBtn = (Button) findViewById(R.id.btnAdd);
addBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
simpKamuta();
}
});
updateTable();
}
protected void simpKamuta() {
try {
dm.addRow(nama.getText().toString(),hobi.getText().toString());
Toast.makeText(getBaseContext(),
nama.getText().toString() + ", berhasil disimpan",
Toast.LENGTH_SHORT).show();
updateTable();
kosongkanField();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getBaseContext(), "gagal simpan, " +
e.toString(),Toast.LENGTH_LONG).show();
}
}
protected void kosongkanField(){
nama.setText("");
hobi.setText("");
}
protected void updateTable() {
// TODO Auto-generated method stub
while (tabel4data.getChildCount() > 1) {
tabel4data.removeViewAt(1);
}
ArrayList<ArrayList<Object>> data = dm.ambilSemuaBaris();//
for (int posisi = 0; posisi < data.size(); posisi++) {
TableRow tabelBaris = new TableRow(this);
ArrayList<Object> baris = data.get(posisi);
TextView idTxt = new TextView(this);
idTxt.setText(baris.get(0).toString());
tabelBaris.addView(idTxt);
TextView namaTxt = new TextView(this);
namaTxt.setText(baris.get(1).toString());
tabelBaris.addView(namaTxt);
TextView hobiTxt = new TextView(this);
hobiTxt.setText(baris.get(2).toString());
tabelBaris.addView(hobiTxt);
tabel4data.addView(tabelBaris);
}
}}
package com.db.satu;
导入java.util.ArrayList;
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.TableLayout;
导入android.widget.TableRow;
导入android.widget.TextView;
导入android.widget.Toast;
公共类数据库androidsatu扩展活动{
数据库管理器;
编辑文本nama,hobi;
按钮addBtn;
TableLayout tabel4data;//数据选项卡
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
dm=新数据库管理器(此);
tabel4data=(TableLayout)findviewbyd(R.id.tabel_数据);
nama=(EditText)FindView-YID(R.id.inNama);
hobi=(EditText)findViewById(R.id.inHobi);
addBtn=(按钮)findviewbyd(R.id.btnAdd);
addBtn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
simpKamuta();
}
});
updateTable();
}
受保护的void simpKamuta(){
试一试{
dm.addRow(nama.getText().toString(),hobi.getText().toString());
Toast.makeText(getBaseContext(),
nama.getText().toString()+“,berhasil disimpan”,
吐司。长度(短)。show();
updateTable();
kosongkanField();
}捕获(例外e){
e、 printStackTrace();
Toast.makeText(getBaseContext(),“gagal simpan,”+
e、 toString(),Toast.LENGTH_LONG).show();
}
}
受保护的无效kosongkanField(){
nama.setText(“”);
hobi.setText(“”);
}
受保护的void updateTable(){
//TODO自动生成的方法存根
while(tabel4data.getChildCount()>1){
表4数据移除视图(1);
}
ArrayList data=dm.ambilSemuaBaris()//
对于(int-posisi=0;posisi
以下是位于项目菜单文件夹中的my.xml文件:
其包含错误:“错误:找不到与给定名称匹配的资源(在'title'处,值为'@string/action\u settings')。database\u android\u satu.xml/DatabaseAndroid/res/菜单行5安卓AAPT问题“
您必须在strings.xml文件中指定
某些字符串。通常,当R.java
无法正常工作时,这是因为您的一个xml文件中存在问题。在这种情况下,您的菜单.xml
文件导致了问题。它表示您正在引用名为操作设置的字符串ode>,但尚未定义此字符串
要解决此问题,请打开strings.xml
文件,并使用MyString
定义一个字符串
回应您评论的示例:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Masukkan nama dan hobi</string>
<string name="app_name">Database Android #1</string>
<string name="btnAddtxt">Add</string>
<string name="namaLabel">Nama</string>
<string name="hobiLabel">hobi</string>
<string name="nomorLabel">No.</string>
<string name="nomorLabel">No.</string>
<string name="action_settings">Settings</string>
</resources>
纳马丹霍比先生
数据库Android#1
添加
纳米
霍比
不
不
设置
你的xml有一些错误。你能验证你的/res/values/strings.xml是否有可能的重复项吗?你真的应该运行完整的Gradle构建,然后在Android Studio的Project explorer透视图中查看哪些资源文件有红色下划线(有错误)。这是my string.xml中的内容。你能检查一下吗?Masukkan nama dan hobi数据库Android#1添加nama hobi No。不。是的,所以你需要添加操作字符串。我用一个例子更新了答案。不管怎样,为什么我要运行此应用程序时,它会说“不幸的是”应用程序名称”他停了下来。为什么会这样?检查您的LogCat
。它将包含应用程序崩溃时打印的堆栈跟踪。不过,这听起来像是一个单独的问题,如果您需要继续帮助,应该在单独的问题中发布。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Masukkan nama dan hobi</string>
<string name="app_name">Database Android #1</string>
<string name="btnAddtxt">Add</string>
<string name="namaLabel">Nama</string>
<string name="hobiLabel">hobi</string>
<string name="nomorLabel">No.</string>
<string name="nomorLabel">No.</string>
<string name="action_settings">Settings</string>
</resources>