在ImageView中显示图像。点击该图像时,我显示警告对话框,并以更大的尺寸显示相同的图像,第一次正常工作,但第二次点击该图像时出现以下错误我的logcat,任何帮助。
07-24 05:20:39.657:E / AndroidRuntime(363):java.lang.IllegalStateException:指定的子节点已经有父节点。您必须首先在孩子的父母身上调用removeView()。
这是我的代码......
公共类MainActivity扩展了Activity {
private Button btn;
ImageView image1;
AlertDialog.Builder alert;
int imgvi=R.drawable.rose;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image1=(ImageView)findViewById(R.id.imgfull);
image1.setImageResource(imgvi);
alert=new AlertDialog.Builder(this);
LayoutInflater inflater=MainActivity.this.getLayoutInflater();
View layouti=inflater.inflate(R.layout.imageview,null);
alert.setView(layouti);
final ImageView img=(ImageView) layouti.findViewById(R.id.imgfull);
alert.setTitle("FullImage");
img.setImageResource(imgvi);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
});
image1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
alert.show();
}
});
}
}
答案 0 :(得分:0)
这是因为您的Dialog上的ImageView已经设置了图像。
在设置图像之前调用它 -
yourimageview.setImageResource(0);
希望这有效。
答案 1 :(得分:0)
请尝试这种方式,希望这有助于您解决问题。
<强> activity_main.xml中强>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<ImageView
android:id="@+id/imgfull"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"/>
</LinearLayout>
<强> imageview.xml 强>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imgfull"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"/>
</LinearLayout>
<强> MainActivity.java 强>
public class MainActivity extends Activity{
ImageView image1;
private int image = R.drawable.ic_launcher;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image1=(ImageView)findViewById(R.id.imgfull);
image1.setImageResource(image);
image1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showImage(image);
}
});
}
public void showImage(int image){
AlertDialog.Builder alert =new AlertDialog.Builder(this);
View view = LayoutInflater.from(this).inflate(R.layout.imageview, null);
alert.setView(view);
ImageView img=(ImageView) view.findViewById(R.id.imgfull);
alert.setTitle("FullImage");
img.setImageResource(image);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
alert.show();
}
}