我想这样做,只需点击一下按钮,就会有一条弹出消息.
现在,只要我打开应用程序,弹出窗口就会出现.
BTW我要触发弹出窗口的按钮是main.xml中的about按钮
这是我的main.xml(包含布局):
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/main" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#3DE400" android:orientation="vertical" > <!-- background originally #d78a00 --> <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="60dp" android:fontFamily="sans-serif-condensed" android:paddingLeft="10dp" android:text="Sample App" android:textColor="#FFF" android:textSize="60sp" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="sans-serif-condensed" android:paddingLeft="10dp" android:text="@string/creator" android:textColor="#FFF" android:textSize="20dp" /> <Button android:id="@+id/about" android:layout_width="123dp" android:layout_height="wrap_content" android:layout_marginTop="50dp" android:background="@android:color/transparent" android:fontFamily="sans-serif-condensed" android:gravity="left" android:paddingLeft="10dp" android:text="@string/about" android:textColor="#FFF" android:textSize="40dp" android:onClick="show" /> </LinearLayout>
这是我的MainActivity.java:
package com.pranavsanghvi.sampleappv4; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.view.Menu; import android.widget.Toast; import android.content.DialogInterface; import android.view.View; import android.widget.Button; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this); alert.setTitle("About"); alert.setMessage("Sample About"); alert.setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick (DialogInterface dialog, int id) { Toast.makeText (MainActivity.this, "Success", Toast.LENGTH_SHORT) .show(); } }); alert.setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { Toast.makeText(MainActivity.this, "Fail", Toast.LENGTH_SHORT) .show(); } }); alert.show(); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
首先,在MainActivity中声明警报和按钮:
public class Mainactivity extends Activity { private AlertDialog.Builder alert; private Button btAbout; //rest of the code }
然后,在onCreate()中,像你一样创建你的警报,除了这一行:
alert.show(); // <--- remove this line as not to show the alert immediately
因为你已经声明了全局警报,所以请记住在这里删除AlertDialog.Builder,而不是:
AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this); alert.setTitle("About"); //rest of the code
你应该有:
alert = new AlertDialog.Builder(MainActivity.this); alert.setTitle("About"); //rest of the code
接下来,获取about按钮的句柄:
btAbout = (Button) findViewById(R.id.about);
将onClickListener设置为按钮:
btAbout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //when this button is clicked, show the alert alert.show(); } });
所有这些都在onCreate()中.现在,当单击按钮时,将显示您的警报.
翻译自:https://stackoverflow.com/questions/21221054/android-eclipse-popup-message-with-button