Bauss
Bauss

Reputation: 183

Java Not Recognizing ID of Android XML Elements

Hello fellow programmers!

I am doing a tutorial but have ran into a snag that I cannot solve. When I set up the link of XML elements to Java like this:

Image1 = (ImageView) findViewById(R.id.ivImage1);

It does not recognize the id even though it is the exact one in the XML. ivImage1 ivImage2, and ivImage3 all don't work but the rest of the elements in the class do. What am I doing wrong?

Here is my Activity code:

package com.frostbytedev.addsub;

import java.io.IOException;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;

public class Photo extends Activity implements OnClickListener {
    Bitmap bmp;
    ImageButton ib;
    Button b;
    ImageView iv, Image1, Image2, Image3, Image4;
    Intent i;
    final static int cameraData = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.photo);
        initialize();
    }

    private void initialize() {

        // TODO Auto-generated method stub
        iv = (ImageView) findViewById(R.id.ivReturnedPic);
        b = (Button) findViewById(R.id.bSetWall);
        ib = (ImageButton) findViewById(R.id.ibTakePic);
        Image1 = (ImageView) findById(R.id.ivImage1);
        Image2 = (ImageView) findById(R.id.ivImage2);
        Image3 = (ImageView) findById(R.id.ivImage3);
        Image4 = (ImageView) findById(R.id.ivImage4);
        b.setOnClickListener(this);
        ib.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch(v.getId()){
        case R.id.bSetWall:
            try {
                getApplicationContext().setWallpaper(bmp);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            break;

        case R.id.ibTakePic:
            i= new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(i, cameraData);
            break;




        }//Closes Switch
    }//Closes OnClick
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode == RESULT_OK){
        Bundle extras = data.getExtras();   
        bmp = (Bitmap) extras.get("data");
        iv.setImageBitmap(bmp);
        }
}//Closes Class

photo.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/ivReturnedPic"
        android:layout_width="fill_parent"
        android:layout_height="250dp"
        android:layout_gravity="center"
        android:src="@drawable/white" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="60dp"
        android:orientation="horizontal"
        android:weightSum="100">

        <ImageButton
            android:id="@+id/ibTakePic"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="78"
            android:background="@drawable/camera" />

        <Button
            android:id="@+id/bSetWall"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="22"
            android:text="Set as Wallpaper" />
    </LinearLayout>

    <HorizontalScrollView 
        android:layout_width="200dp" 
        android:layout_height="wrap_content"
        android:layout_gravity="center">

        <LinearLayout 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/ivImage1"
                android:layout_width="125dp"
                android:layout_height="125dp"
                android:padding="15dp"
                android:src="@drawable/stevenrulz" />

            <ImageView
                android:id="@+id/ivImage2"
                android:layout_width="125dp"
                android:layout_height="125dp"
                android:padding="15dp"
                android:src="@drawable/cat" />

            <ImageView
                android:id="@+id/ivImage3"
                android:layout_width="125dp"
                android:layout_height="125dp"
                android:padding="15dp"
                android:src="@drawable/bee" />
        </LinearLayout>
    </HorizontalScrollView>
</LinearLayout>

Thanks for the help!

Upvotes: 16

Views: 6633

Answers (4)

Jorge A
Jorge A

Reputation: 11

I had the same issue.

  1. Delete the View from the xml file.
  2. Save Proyect(ctr + S).
  3. Write again or paste the view.

Upvotes: 0

Rupam Das
Rupam Das

Reputation: 483

If Build -> Clean project doesn't work for you, Do this -

Go to File -> Invalidate caches / Restart -> Invalidate and Restart

Upvotes: 2

Vishal Pawale
Vishal Pawale

Reputation: 3476

Try cleaning the project from Project -> Clean and build it again.

Upvotes: 16

user4717471
user4717471

Reputation:

Clean and Build Your Project and after adding layouts or widgets in xml u must saved it first.

Upvotes: 1

Related Questions