2016-10-07 57 views
1

我是新的android編程,我想做一個警告對話框project.my xml文件是好的,但是當我在genymotion中打開應用程序時,它不顯示警報dialog.this是我的java的代碼:安卓 - 在GenyMotion中的警報對話框問題

package karimi.afshin.alertdialog; 

import android.content.DialogInterface; 
import android.support.v7.app.AlertDialog; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Toast; 

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 
public void open(View view){ 
    AlertDialog.Builder alertDialogBuilder=new AlertDialog.Builder(this); 
    alertDialogBuilder.setMessage("Are you sure,You wanted to make decision"); 

    alertDialogBuilder.setPositiveButton("yes", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface arg0, int arg1) { 
      Toast.makeText(MainActivity.this,"You clicked yes button",Toast.LENGTH_LONG).show(); 
     } 
    }); 
    alertDialogBuilder.setNegativeButton("No", new DialogInterface.OnClickListener() { 
     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      finish(); 
     } 
    }); 
    AlertDialog alertDialog=alertDialogBuilder.create(); 
    alertDialog.show(); 
} 

}

,這是我的xml文件:

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Alert Dialog" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="32dp" 
    android:id="@+id/textView1" 
    android:textSize="25sp" 
    android:textColor="@color/background_floating_material_dark" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text="Tutorialspoint" 
    android:id="@+id/textView2" 
    android:layout_below="@+id/textView1" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="25dp" 
    android:textColor="#3db226" 
    android:textSize="40sp" /> 

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/imageView" 
    android:src="@drawable/abc" 
    android:layout_below="@+id/textView2" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="46dp" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="ALERT DIALOG" 
    android:id="@+id/button" 
    android:layout_below="@+id/imageView" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="30dp" /> 

我希望它像這張照片一樣,但不會顯示對話框!

enter image description here

謝謝:)

+0

你打電話給你的「開放」方法在哪裏?在按鈕佈局中沒有設置OnClickListener或onClick。如果您有任何問題,我可以爲您解答。 –

+0

我不知道我從tutorial.Wow我可以修復它嗎? – Afshin

+0

嗨檢查我的答案, –

回答

0

你並不需要在你的代碼進行任何更改。只需在您的按鈕佈局中添加android:onClick="open"即可。像這樣:

... 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="ALERT DIALOG" 
     android:onClick="open" 
     android:id="@+id/button" 
     android:layout_below="@+id/imageView" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="30dp" /> 
... 

希望這有助於!

+0

感謝您的回覆。這是我第一次體驗Android ... :) – Afshin

0

試試這個, 首先你得的onclick作出打開的對話框按鈕,

這樣的事情在的onCreate方法

Button btn 
btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       FragmentManager fm = getActivity().getSupportFragmentManager(); 
       TestDialog dialog= new TestDialog(); 
       dialog.show(fm,"fragment name"); 
} 

現在你必須創建新的類名TestDialogextends li柯本

public class TestDialog extends DialogFragment { 


public TestDialog() { 
} 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout."example.xml", container, false); 

//declare your views here like buttons or edit text 
    return rootView;} 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    Dialog dialog = new Dialog(getActivity(), getTheme()); 
    final View view = getActivity().getLayoutInflater().inflate(
      R.layout.actionoption, null); 
    dialog.setTitle(getResources().getString(R.string.action_settings)); 
    dialog.setCanceledOnTouchOutside(false); 
    return dialog; 

} 
    public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 
    getDialog().setTitle("Actions Option"); 


}} 

希望這有助於任何問題告訴我在評論

+0

但我想知道,我可以如何調用open方法? – Afshin

+0

什麼是開放的方法?我不明白?你對圖片的問題和這個圖片的解決方案?什麼是 ? –

+0

我的意思是我不想在代碼中做很多更改。我們用小的更改對其進行更正? – Afshin