2016-03-01 68 views
1

我正在为一个学校项目制作一个应用程序,并且我卡在一个区域。 我想用一个好的按钮来解除弹出窗口。 如果您有任何建议或者有更好的方法来实现弹出窗口,请分享它们。如何使用一个好的按钮来关闭一个Android弹出窗口

package xyz.ashraf.whoisdelasalle; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.DisplayMetrics; 

public class Pop extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.popwindow); 

    DisplayMetrics dm = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(dm); 

    int width = dm.widthPixels; 
    int height = dm.heightPixels; 

    getWindow().setLayout((int)(width*.8),(int)(height*.5)); 

} 
} 

Java代码^

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/ScrollView01" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
<RelativeLayout 
    android:layout_width="match_parent" android:layout_height="match_parent" 
    android:background="#FAFAFA"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text="John Baptist de La Salle was a French priest, educational reformer, and founder of the Institute of the Brothers of the Christian Schools. He is a saint of the Roman Catholic Church and the patron saint of teachers." 
    android:id="@+id/textView" 
    android:background="#FAFAFA" 
    android:textColor="#000000" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="15dp" 
    android:layout_marginRight="15dp" 
    android:layout_marginLeft="15dp"/> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="OK" 
    android:id="@+id/okButton_who" 
    android:textColor="#00E676" 
    android:background="#FAFAFA" 
    android:layout_below="@+id/textView" 
    android:layout_alignRight="@+id/textView" 
    android:layout_alignEnd="@+id/textView" 
    android:layout_marginTop="50dp"/> 

</RelativeLayout> 
    </ScrollView> 

XML^

提前感谢!

+0

为什么你使用完整的活动来显示弹出?您可以改为使用对话框或弹出窗口,参考这些链接http://developer.android.com/guide/topics/ui/dialogs.html http://developer.android.com/reference/android/widget/PopupWindow。 html – HendraWD

回答

1

不知道这是否会工作,但你可以尝试:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.popwindow); 

    DisplayMetrics dm = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(dm); 

    int width = dm.widthPixels; 
    int height = dm.heightPixels; 

    getWindow().setLayout((int)(width*.8),(int)(height*.5)); 

    Button okButton = (Button) findViewById(R.id.okButton_who); 
    okButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      finish(); 
     } 
    }); 

} 

或者作为akadouri建议你可以使用对话框或DialogFragments。

+0

非常感谢!有效! –

0

我想你可以使用AlertDialog来做到这一点。

AlertDialog.Builder builder = new AlertDialog.Builder(mActivity); 

    builder.setTitle(title);  // If you want a header title 
    builder.setCancelable(false); // If you want to stop user dismissing with back button 
    builder.setMessage(message); // Message to user 

    //If you want custom layout (not needed) 
    LayoutInflater inflater = mActivity.getLayoutInflater(); 
    View dialogView = inflater.inflate(R.layout.pin_dialog, null); 
    builder.setView(dialogView) 

    builder.setPositiveButton(positiveLable, new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
      //Do something 
     } 
    }); 

    builder.setNegativeButton(negativeLable, new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
      //Do something, or remove if you dont want negative button 
     } 
    }); 

    builder.show(); 
相关问题