Java – findviewbyid() returns that the symbol cannot be found, but is the ID defined in the layout?

I'm learning some Android application development myself. I'm focusing on a video tutorial on how to create a simple todo list application However, I encountered a compilation error. From my limited knowledge, everything seemed to be in order The following are the main classes and layouts:

Main. java: http://pastebin.com/vfuANx0p

package com.example.exampletodo;

import android.R;
import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.widget.EditText;
import android.widget.Button;
import android.widget.ListView;
import java.util.ArrayList;
import android.widget.ArrayAdapter;

public class Main extends Activity implements OnClickListener,OnKeyListener {

    EditText txtItem;
    Button btnAdd;
    ListView listItems;

    ArrayList<String> toDoItems;
    ArrayAdapter<String> aa;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        txtItem = (EditText)findViewById(R.id.txtItem);
        btnAdd = (Button)findViewById(R.id.btnAdd);
        listItems = (ListView)findViewById(R.id.listItems);

        btnAdd.setOnClickListener(this);
        txtItem.setOnKeyListener(this);

        toDoItems = new ArrayList<String>();
        aa = new ArrayAdapter<String>(this,R.layout.simple_list_item_1,toDoItems);
        listItems.setAdapter(aa);
    }

    private void addItem(String item){
        if(item.length() > 0){
            this.toDoItems.add(item);
            this.aa.notifyDataSetChanged();
            this.txtItem.setText("");
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main,menu);
        return true;
    }

    public void onClick(View v){
        if(v == this.btnAdd){
            this.addItem(this.txtItem.getText().toString());
        }
    }

    public boolean onKey(View v,int keyCode,KeyEvent event){
        if(event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_DPAD_CENTER){
            this.addItem(this.txtItem.getText().toString());
        }
        return false;
    }

}

main. In XML: http://pastebin.com/WcWg692v

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin"
   tools:context=".Main">

    <EditText
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:id="@+id/txtItem" android:layout_alignParentTop="true"
           android:layout_alignParentRight="true" android:layout_alignParentLeft="true" android:focusable="true"/>
    <Button
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:text="@string/add"
           android:id="@+id/btnAdd" android:layout_below="@+id/txtItem" android:layout_alignRight="@+id/txtItem"
           android:layout_alignLeft="@+id/txtItem"/>
    <ListView
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:id="@+id/listItems"
           android:layout_alignParentRight="true" android:layout_alignParentLeft="true"
           android:layout_alignParentBottom="true" android:layout_below="@+id/btnAdd"/>
</RelativeLayout>

The error is:

/home/rohan/ExampleToDo/ExampleToDo/src/main/java/com/example/exampletodo/Main.java
 Gradle: cannot find symbol variable main Gradle: cannot find symbol
 variable txtItem Gradle: cannot find symbol variable btnAdd Gradle:
 cannot find symbol variable listItems Gradle: cannot find symbol
 variable main

Thank you very much for your help!

Solution

You import the wrong r file, you import Android R. You should import your package R

com.example.exampletodo.R

Editor: don't forget that cleaning and construction are sometimes necessary Therefore, it is better than relying on automatic r creation And you can check whether your r file contains your ID at any time

Part 2:

Change that

ArrayAdapter<String>(this,toDoItems);

become

ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,toDoItems);

Because simple_ list_ item_ 1 is Android Part of R, not your R

I hope this will help and enjoy your work

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>