Android - 无法解析符号
我刚开始我的第一个Android APK项目,所以这可能是真正的白昼问题。我正在考虑制作第一个应用程序,所以我阅读som文章并决定遵循一个教程来制作简单的ToDoList。我按照教程的所有步骤,我做了如下代码:Android - 无法解析符号
package sk.example.todolist;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ContentValues;
import android.content.DialogInterface;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import sk.melnikovic.michal.todolist.db.TaskContract;
import sk.melnikovic.michal.todolist.db.TaskDBHelper;
public class MainActivity extends Activity {
private TaskDBHelper helper;
@Override
public void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.main);
SQLiteDatabase sqlDB = new TaskDBHelper(this).getWritableDatabase();
Cursor cursor = sqlDB.query(TaskContract.TABLE,
new String[]{TaskContract.Columns.TASK},
null,null,null,null,null);
cursor.moveToFirst();
while(cursor.moveToNext()) {
Log.d("MainActivity cursor",
cursor.getString(
cursor.getColumnIndexOrThrow(
TaskContract.Columns.TASK)));
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_add_task:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Add a task");
builder.setMessage("What do you want to do?");
final EditText inputField = new EditText(this);
builder.setView(inputField);
builder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String task = inputField.getText().toString();
Log.d("MainActivity",task);
TaskDBHelper helper = new TaskDBHelper(MainActivity.this);
SQLiteDatabase db = helper.getWritableDatabase();
ContentValues values = new ContentValues();
values.clear();
values.put(TaskContract.Columns.TASK,task);
db.insertWithOnConflict(TaskContract.TABLE,null,values,
SQLiteDatabase.CONFLICT_IGNORE);
}
});
builder.setNegativeButton("Cancel", null);
builder.create().show();
return true;
default:
return false;
}
}
}
看起来更好,然后对我好。问题是我收到一些错误。 第一个错误 - 在onCreate方法 - >(R.layout.main) - 无法解析符号主要 二错误 - 在onOptionItemSelected - >情况下R.id.action_add_task: - 无法解析符号action_add_task
家伙我的问题是,你可以导航我如何解决这个问题,或者给我一些未来的建议。我不要求你免费的编码,只是希望一些不错的人谁可以理解的开始总是最难:)
编辑: task_view.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:id="@+id/taskTextView"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textSize="20dp"
android:layout_toLeftOf="@+id/doneButton"
android:layout_alignBottom="@+id/doneButton"
android:gravity="center_vertical" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Done"
android:id="@+id/doneButton"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
</RelativeLayout>
两件事情:
由于您的布局名称为
activity_main.xml
而不是main.xml
,请替换setContentView()
中的名称。-
你需要通过覆盖
onCreateOptionsMenu
夸大你的菜单项:@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.yourMenuFile, menu); return super.onCreateOptionsMenu(menu); }
再次感谢Shobit Puri,你对于setContentView绝对正确。感谢您在第二部分的建议。 你怎么能找到一点时间来检查为什么我得到一个与action_add_task错误? – 2014-11-24 21:24:09
你可以发布你的'task_view.xml'文件,以及你膨胀你的菜单文件的代码吗? – 2014-11-24 21:40:18
编辑我的问题:) – 2014-11-24 21:43:48
哪里是你的进口资源包{} your.app.pkg.name.R? – 2014-11-24 19:52:10
setContentView(R.layout.activity_main);这是工作,:) – 2014-11-24 19:56:25
你设法解决这个问题吗?为什么你有两个'onCreate()'方法? – 2014-11-24 20:48:01