各位程序员好!
我正在做一个教程,但遇到了一个我无法解决的问题。当我像这样设置 XML 元素到 Java 的链接时:
Image1 = (ImageView) findViewById(R.id.ivImage1);
即使它是 XML 中的确切 ID,它也无法识别该 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
照片.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>
谢谢您的帮助!