Martin Ferko
Martin Ferko

Reputation: 37

Android - Can't resolve symbol

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

Answers (1)

Shobhit Puri
Shobhit Puri

Reputation: 26007

Two things:

  1. Since your layout name is activity_main.xml and not main.xml, replace the name in setContentView().

  2. 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

Related Questions