Reputation: 37
i just start my first Android APK project so this is probably really noob question. I was thinking of making first app so i read som articles and decidee to follow one tutorial to make simple ToDoList. Ater i follow all steps of Tutorial i made code like:
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;
}
}
}
Looks more then good for me. Problem is i am getting some errors. First error - in onCreate method - > (R.layout.main) - Can't resolve symbol main Second error - in onOptionItemSelected -> case R.id.action_add_task: - Can't resolve symbol action_add_task
Guys my question is can you navigate me how to fix this, or give me some advise to future. I don't ask you for free coding, just hope for some nice person who can understand that start is always hardest :)
EDIT: 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>
Upvotes: 0
Views: 4019
Reputation: 26007
Two things:
Since your layout name is activity_main.xml
and not main.xml
, replace the name in setContentView()
.
You need to inflate your menu items by overriding onCreateOptionsMenu
:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.yourMenuFile, menu);
return super.onCreateOptionsMenu(menu);
}
Upvotes: 1