I have a problem with popup window. I want to create popup window with my own layout. This is code:
public class PopupWindowView extends PopupWindow{
P
Hi check this post consists of Solution to your question
Try this code :
public class ShowPopUp extends Activity {
PopupWindow popUp;
LinearLayout layout;
TextView tv;
LayoutParams params;
LinearLayout mainLayout;
Button but;
boolean click = true;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
popUp = new PopupWindow(this);
layout = new LinearLayout(this);
mainLayout = new LinearLayout(this);
tv = new TextView(this);
but = new Button(this);
but.setText("Click Me");
but.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (click) {
popUp.showAtLocation(mainLayout, Gravity.BOTTOM, 10, 10);
popUp.update(50, 50, 300, 80);
click = false;
} else {
popUp.dismiss();
click = true;
}
}
});
params = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
layout.setOrientation(LinearLayout.VERTICAL);
tv.setText("Hi this is a sample text for popup window");
layout.addView(tv, params);
popUp.setContentView(layout);
// popUp.showAtLocation(layout, Gravity.BOTTOM, 10, 10);
mainLayout.addView(but, params);
setContentView(mainLayout);
}
}
try this......
public void popUpWindow() {
final Dialog dialog = new Dialog(MainActivity.this);
dialog.setContentView(R.layout.client_details);
dialog.setTitle("Client Details");
dialog.show();
}
You can use following code. you need to use PopupWindow for this.
PopupWindow mpopup;
then you need to inflate your view.
View popUpView = getLayoutInflater().inflate(R.layout.activity_login,
null); // inflating popup layout
mpopup = new PopupWindow(popUpView, LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT, true); // Creation of popup
mpopup.setAnimationStyle(android.R.style.Animation_Dialog);
mpopup.showAtLocation(popUpView, Gravity.CENTER, 0, 0); // Displaying popup
if your layout have some item then you need bind that item with your view.
TextView some = (TextView) popUpView.findViewById(R.id.some);
Button btnCancel = (Button) popUpView.findViewById(R.id.btnCancel);
onClickListener of your popup windows item.
btnCancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mpopup.dismiss();
}
});
You can dismiss your PopupWindow using mpopup.dismiss();
You can use LayoutInflater
LayoutInflater inflater = (LayoutInflater) act.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.custom_layout, null); //custom_layout is your xml file which contains popuplayout
LinearLayout layout = (LinearLayout) view.findViewById(R.id.popuplayout);
alert=(Button)findViewById(R.id.click);
detail=(ImageView)findViewById(R.id.goDetail);
alert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// custom dialog
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.custom);
dialog.setTitle(Html.fromHtml("<font color='#EC407A'>About</font>"));
Button dialogButton = (Button) dialog.findViewById(R.id.dialogOK);
ImageView img = (ImageView) dialog.findViewById(R.id.goDetail);
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
Toast.makeText(getApplicationContext(),"Dismissed..!!",Toast.LENGTH_SHORT).show();
}
});
img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
i=new Intent(getApplication(),CustomDetail.class);
setIntent(i);
Toast.makeText(Dashboard.this, "Check detail ", Toast.LENGTH_SHORT).show();
}
});
dialog.show();
}
try this code:
private void showSortPopup(final Activity context, Point p)
{
// Inflate the popup_layout.xml
LinearLayout viewGroup = (LinearLayout) context.findViewById(R.id.llSortChangePopup);
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = layoutInflater.inflate(R.layout.sort_popup_layout, viewGroup);
// Creating the PopupWindow
changeSortPopUp = new PopupWindow(context);
changeSortPopUp.setContentView(layout);
changeSortPopUp.setWidth(LinearLayout.LayoutParams.WRAP_CONTENT);
changeSortPopUp.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT);
changeSortPopUp.setFocusable(true);
// Some offset to align the popup a bit to the left, and a bit down, relative to button's position.
int OFFSET_X = -20;
int OFFSET_Y = 95;
// Clear the default translucent background
changeSortPopUp.setBackgroundDrawable(new BitmapDrawable());
// Displaying the popup at the specified location, + offsets.
changeSortPopUp.showAtLocation(layout, Gravity.NO_GRAVITY, p.x + OFFSET_X, p.y + OFFSET_Y);
// Getting a reference to Close button, and close the popup when clicked.
Button close = (Button) layout.findViewById(R.id.close);
close.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
changeSortPopUp.dismiss();
}
});
}