2014-07-24 24 views
0

我在ImageView中顯示圖像。當點擊該圖像時,我顯示了警告對話框,並且顯示的圖像尺寸較大,它的第一次工作正常,但第二次當我點擊那個imageview在我的logcat中得到以下錯誤時,任何幫助。removeView()在圖像視圖上的第一個孩子的第一個錯誤

07-24 05:20:39.657:E/AndroidRuntime(363):java.lang.IllegalStateException:指定的子項已經有父項。您必須先調用子對象的父對象的removeView()。

這裏是我的代碼...

公共類MainActivity擴展活動{

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

把一些代碼pls .. –

回答

0

那是因爲你對你的對話框的ImageView有圖像已經設置。

在設置圖像調用本 -

yourimageview.setImageResource(0); 

希望這個作品。

+0

正如你所說的設置0的imageview,但同樣的問題仍然存在。 – user2285035

+0

它不是必需的,因爲當你設置背景時。它會自動替換以前的一個 – Nepster

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(); 

    } 
} 
+0

感謝很多老兄解決了我的問題... – user2285035

+0

很高興幫助你,你可以請批准這個答案,所以它可能會幫助其他人感謝.... –

相關問題