我正在尝试实现弹出窗口中的微调器。当选择一个项目并单击该按钮时,它将根据微调器中的选定项目显示。
String[]Company={"Cash","M-Pesa","Voucher","Credit-Card"};
下面是包含微调器的弹出窗口
private void callPopup() {
LayoutInflater layoutInflater=(LayoutInflater)getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
View popupView=layoutInflater.inflate(R.layout.popup1,null);
//final PopupWindow popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.MATCH_PARENT, true);
final PopupWindow popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT, true);
popupWindow.setTouchable(true);
popupWindow.setFocusable(true);
popupWindow.showAtLocation(popupView, Gravity.CENTER, 0, 0);
final Spinner popupSpinner=(Spinner)popupView.findViewById(R.id.spinner);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(StartWatchActivity.this,android.R.layout.simple_spinner_dropdown_item, Company);
popupSpinner.setAdapter(adapter);
Name =(EditText)popupView.findViewById(R.id.edtimageName);
Name.setText(String.valueOf(amount));
final Spinner spnLocale;
spnLocale=(Spinner)findViewById(R.id.spinner);
//int iCurrentSelection=spnLocale.getSelectedItemPosition();
// TextView txtView = (TextView)popupView.findViewById(R.id.txtView);
// txtView.setText("Total Cars Packed:\t" +amount +" Cars");
((Button) popupView.findViewById(R.id.saveBtn)).setOnClickListener(new View.OnClickListener() {
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
public void onClick(View v) {
spnLocale.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (!(spnLocale.getSelectedItem().toString().trim().equals("Company"))) {
if (spnLocale.getSelectedItem().toString().trim().equals("Cash")) {
Toast.makeText(StartWatchActivity.this, "Amount Paid :\t" + Name.getText().toString(), Toast.LENGTH_LONG).show();
} else if (spnLocale.getSelectedItem().toString().trim().equals("M-pesa")) {
Toast.makeText(StartWatchActivity.this, "Amount Paid :\t" + Name.getText().toString(), Toast.LENGTH_LONG).show();
}
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
// Toast.makeText(getBaseContext(), "Amount paid", Toast.LENGTH_SHORT).show();
// Toast.makeText(getApplicationContext(), Name.getText().toString(), Toast.LENGTH_LONG).show();
popupWindow.dismiss();
}
});
((Button)popupView.findViewById(R.id.cancelbutton)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
popupWindow.dismiss();
}
});
popupWindow.showAsDropDown(saveBtn, 50,-30);
}
不介意注释代码
答案 0 :(得分:0)
使用下面的代码在弹出窗口中添加微调器,并将其选中为吐司。
private void openSpinnerpopup() {
//inflate the layout
LayoutInflater li = LayoutInflater.from(MainActivity.this);
View promptsView = li.inflate(R.layout.my_dialog_layout, null);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this);
//set the inflated layout in the dialog.
alertDialogBuilder.setView(promptsView);
// create alert dialog
alertDialog = alertDialogBuilder.create();
final Spinner mSpinner = (Spinner) promptsView
.findViewById(R.id.spinner);
// reference UI elements from my_dialog_layout in similar fashion
mSpinner.setOnItemSelectedListener(new OnSpinnerItemClicked());
// show it
alertDialog.show();
alertDialog.setCancelable(true);
}
//for spinneritemclick.
public class OnSpinnerItemClicked implements AdapterView.OnItemSelectedListener {
@Override
public void onItemSelected(AdapterView<?> parent,
View view, int pos, long id) {
Toast.makeText(parent.getContext(), "Selected : " +
parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();
btn.setText(parent.getSelectedItem().toString());
}
@Override
public void onNothingSelected(AdapterView parent) {
// Do nothing.
}
}
在buttonclick上调用它:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//open spinner as dialog
openSpinnerpopup();
}
});
答案 1 :(得分:0)
试试这段代码:
String name= null;
if(popupSpinner != null && popupSpinner.getSelectedItem() !=null ) {
name = (String)popupSpinner.getSelectedItem();
//get the name of current selected item..
} else {
//nothing is selected
}