简体   繁体   中英

"Expected resource of type layout/menu" in Android Studio

    package com.example.nimehr.streaming;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import com.example.videostream.VideoViewActivity;

public class MainActivity extends Activity {
    Button button;

public MainActivity() {
}

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setContentView(2130903040);
    this.button = (Button)this.findViewById(R.id.myButton);
    this.button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, VideoViewActivity.class);
            MainActivity.this.startActivity(intent);
        }
    });
}

public boolean onCreateOptionsMenu(Menu menu) {
    this.getMenuInflater().inflate(2131165184, menu);
    return true;
}
}

I'm getting the error "Expected resource of type layout/menu" at 2130903040 in this.setContentView(2130903040); and 2131165184 in this.getMenuInflater().inflate(2131165184, menu); respectively. I fixed it here this.button = (Button)this.findViewById(2131230720); by changing it to R.id.MyButton

DO not do it this way:

this.setContentView(2130903040);

R class exists for a reason to avoid explicitly using ids like this, and to replace it with a more readable cleaner code:

this.setContentView(R.layout.layout_name_here);

From the docs:

When your application is compiled, aapt generates the R class, which contains resource IDs for all the resources in your res/ directory.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM