Java 安卓SQLite数据库“;R不能解析为变量";

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问题“ 我非常感谢你的善意回答,也许还有一些建议

我刚开始学习Android编程,当时我正试图创建一个简单的Android SQLite数据库,我在“src”中的“java”文件中遇到了一些错误,例如“R无法解析为变量”,我在菜单文件夹中的xml中出现了一个错误,即错误:找不到与给定名称匹配的资源(在“title”处,值为“@string/action\u settings”)。database\u android\u satu.xml/DatabaseAndroid/res/菜单行5安卓AAPT问题“ 我非常感谢你的善意回答,也许还有一些建议

以下是我的.java文件:

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>