Hello其他程序员!
我正在做一个教程,但遇到了一些我无法解决的障碍。当我像这样设置XML元素到Java的链接时:
Image1 = (ImageView) findViewById(R.id.ivImage1);
它不识别id,即使它是XML中的确切ID。 ivImage1 ivImage2和ivImage3都不起作用,但是类中的其他元素都可以。我做错了什么?
这是我的活动代码:
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>
感谢您的帮助!
答案 0 :(得分:16)
尝试再次从Project -> Clean
和build
清除项目。
答案 1 :(得分:1)
清理和构建项目,在xml中添加布局或小部件后,您必须先保存它。
答案 2 :(得分:0)
如果“构建->清理项目”对您不起作用,请执行此操作-
转到文件->使高速缓存无效/重新启动->使无效并重新启动
答案 3 :(得分:0)
我有同样的问题。