2011-11-16 46 views
0

我的應用程序將FC當我按下菜單按鈕,將調用自定義AlertDialog:/菜單中的自定義AlertDialog?

這是我的代碼。有人能幫助我嗎?

package com.winkler.plan; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.Context; 
import android.content.DialogInterface; 

import android.os.Bundle; 
import android.webkit.WebView; 
import android.view.Gravity; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.ViewGroup; 
import android.view.View; 
import android.widget.ImageView; 
import android.widget.TextView; 
import android.widget.Toast; 

public class StundenplanActivity extends Activity { 
    /** Called when the activity is first created. */ 

    WebView mWebview; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     //Webview 
     mWebview = (WebView) findViewById(R.id.webView); 
     mWebview.getSettings().setJavaScriptEnabled(true); 
     mWebview.loadUrl("http://www.google.at"); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu)   //Menu Inflater 
    {              
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.menu, menu); 
     return true; 
    } 




    @Override 
    public boolean onOptionsItemSelected(MenuItem item) 
    { 
     switch (item.getItemId()) 
     { 
      case R.id.plan:  // Shortcut MenuButton Stundeplan 
       { 
        mWebview.loadUrl("http://www.haufen.at/stundenplan/index.php"); 


       } 
       return true; 

      case R.id.about: // Shortcut MenuButton About 
       { 

        AlertDialog.Builder builder; 
        AlertDialog alertDialog; 

        Context mContext = getApplicationContext(); 
        LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE); 
        View layout = inflater.inflate(R.layout.custom_dialog, 
                (ViewGroup) findViewById(R.id.layout_root)); 

        TextView text = (TextView) layout.findViewById(R.id.text); 
        text.setText("Hello, this is a custom dialog!"); 
        ImageView image = (ImageView) layout.findViewById(R.id.image); 
        image.setImageResource(R.drawable.image); 

        builder = new AlertDialog.Builder(mContext); 
        builder.setView(layout); 
        alertDialog = builder.create(); 

        alertDialog.show(); 
       } 
       return true; 

      case R.id.call: // Shortcut MenuButton externe 
       { 
        final CharSequence[] items = {"Moodle", "Klassenserver", "2AHEL- Website"}; 

        AlertDialog.Builder builder = new AlertDialog.Builder(this); 
        builder.setTitle("Pick a color"); 
        builder.setItems(items, new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int item) { 
          Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); 
         } 
        }); 
        AlertDialog alert = builder.create(); 
        alert.show(); 

       } 
       return true; 

      default: 
       return super.onOptionsItemSelected(item); 
     } 

    } 



    public void customToast() 
    { 
     LayoutInflater inflater = getLayoutInflater(); 
     View layout = inflater.inflate(R.layout.layout_toast, 
             (ViewGroup) findViewById(R.id.toast_layout_root)); 

     ImageView image = (ImageView) layout.findViewById(R.id.image); 
     image.setImageResource(R.drawable.image); 
     TextView text = (TextView) layout.findViewById(R.id.text); 
     text.setText("Hallo! ich bin ein Custom Toast"); 


     Toast toast = new Toast(getApplicationContext()); 
     toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); 
     toast.setDuration(Toast.LENGTH_LONG); 
     toast.setView(layout); 
     toast.show(); 
    } 

} 

這裏是我的對話框XML代碼:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:id="@+id/layout_root" 
       android:orientation="horizontal" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:padding="10dp" 
       > 
    <ImageView android:id="@+id/image" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:layout_marginRight="10dp" 
       /> 
    <TextView android:id="@+id/text" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:textColor="#FFF" 
       /> 
</LinearLayout> 

謝謝!哦,列表對話框不會FC。

+0

歡迎:)什麼是「ic」?,我收集「fc」是強制關閉?您可以給我們完整的堆棧跟蹤+崩潰時的代碼行嗎? –

+0

我改正了!應用程序崩潰的代碼行是http://pastebin.com/0NMZVK75,確切的一行是「alertDialog.show();」沒有這條線它不會崩潰!但是沒有這條線,對話框不會被調用! – Tantr

回答