我正在尝试创建一个简单的片段,单击时仅显示图像。我收到许多错误,包括“ExampleFragment 类型的方法 findViewbyId(int) 未定义”、“Inflater 无法解析”和“imageview_main 无法解析或不是字段”。 imageview_main 是我创建的布局,imageView1 是该布局中包含的图像。这是片段代码:
package com.firstproject.simplemenu;
import android.app.Activity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.app.Fragment;
import android.widget.ImageView;
public class ExampleFragment extends Fragment {
Button button;
ImageView image;
public ExampleFragment() {
}
public static ExampleFragment newInstance() {
return new ExampleFragment();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ImageView imageview = (ImageView)findViewById(R.id.imageView1);
return Inflater.inflate(R.layout.iamgeview_main, container, false);
}
public void addListenerOnButton() {
button = (Button) findViewById(R.id.btnChangeImage);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
image.setImageResource(R.drawable.eagle);
}
});
}
findViewById 是 Activity 类中的一个方法。为了避免传递整个活动的实例,请使用 WeakRefence(请参阅http://developer.android.com/reference/java/lang/ref/WeakReference.html)
例如
private WeakReference<MainActivity> activity;
public ExampleFragment(MainActivity mainActivity) {
activity = new WeakReference<MainActivity>(mainActivity);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ImageView imageview = (ImageView)activity.findViewById(R.id.imageView1);
return Inflater.inflate(R.layout.iamgeview_main, container, false);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)