This AlertDialog contains a ListView. Each item contains two buttons. When you press any button, the AlertDialog should close. I am a beginner in programming. Help please!
Creation of AlertDialog:
final AlertDialog currency_d = new AlertDialog.Builder(SettingsActivity.this).create();
View currency_dCV = (View) getLayoutInflater().inflate(R.layout.currency_list, null);
currency_d.setView(currency_dCV);
final ListView listview1 = (ListView) currency_dCV.findViewById(R.id.listview1);
final LinearLayout linear1 = (LinearLayout) currency_dCV.findViewById(R.id.linear1);
final LinearLayout linear2 = (LinearLayout) currency_dCV.findViewById(R.id.linear2);
final LinearLayout linear3 = (LinearLayout) currency_dCV.findViewById(R.id.linear3);
final LinearLayout linear5 = (LinearLayout) currency_dCV.findViewById(R.id.linear5);
final EditText edittext1 = (EditText) currency_dCV.findViewById(R.id.edittext1);
SketchwareUtil.sortListMap(currency_list, "currency", false, true);
search_list_string = new Gson().toJson(currency_list);
edittext1.setFocusable(true);
edittext1.setFocusableInTouchMode(true);
_rippleRoundStroke(linear1, "#171731", "#ffffff", 25, 0, "#000000");
_rippleRoundStroke(linear2, "#26244D", "#ffffff", 25, 0, "#000000");
_rippleRoundStroke(linear3, "#26244D", "#ffffff", 100, 0, "#232146");
_rippleRoundStroke(linear5, "#26244D", "#ffffff", 100, 5, "#232146");
currency_d.requestWindowFeature(Window.FEATURE_NO_TITLE);
currency_d.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
listview1.setAdapter(new Listview1Adapter(currency_list));
((BaseAdapter)listview1.getAdapter()).notifyDataSetChanged();
listview1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> _param1, View _param2, int _param3, long _param4) {
final int _position = _param3;
}
});
edittext1.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence _param1, int _param2, int _param3, int _param4) {
final String _charSeq = _param1.toString();
currency_list = new Gson().fromJson(search_list_string, new TypeToken<ArrayList<HashMap<String, Object>>>(){}.getType());
search_list = currency_list.size();
search_list_pos = currency_list.size() - 1;
for(int _repeat946 = 0; _repeat946 < (int)(search_list); _repeat946++) {
value1 = currency_list.get((int)search_list_pos).get("currency").toString();
value2 = currency_list.get((int)search_list_pos).get("abbreviation").toString();
if (!(_charSeq.length() > value1.length()) && value1.toLowerCase().contains(_charSeq.toLowerCase())) {
} else {
if (!(_charSeq.length() > value2.length()) && value2.toLowerCase().contains(_charSeq.toLowerCase())) {
} else {
currency_list.remove((int)(search_list_pos));
}
}
search_list_pos--;
}
listview1.setAdapter(new Listview1Adapter(currency_list));
((BaseAdapter)listview1.getAdapter()).notifyDataSetChanged();
}
@Override
public void beforeTextChanged(CharSequence _param1, int _param2, int _param3, int _param4) {
}
@Override
public void afterTextChanged(Editable _param1) {
}
});
currency_d.show();
Custom ListView adapter:
public class Listview1Adapter extends BaseAdapter {
ArrayList<HashMap<String, Object>> _data;
public Listview1Adapter(ArrayList<HashMap<String, Object>> _arr) {
_data = _arr;
}
@Override
public int getCount() {
return _data.size();
}
@Override
public HashMap<String, Object> getItem(int _index) {
return _data.get(_index);
}
@Override
public long getItemId(int _index) {
return _index;
}
// EditText edittext1 = (EditText) getActivity().findViewById(R.id.edittext1);
@Override
public View getView(final int _position, View _v, ViewGroup _container) {
LayoutInflater _inflater = getLayoutInflater();
View _view = _v;
if (_view == null) {
_view = _inflater.inflate(R.layout.test, null);
}
final LinearLayout linear1 = _view.findViewById(R.id.linear1);
final LinearLayout linear2 = _view.findViewById(R.id.linear2);
final LinearLayout linear3 = _view.findViewById(R.id.linear3);
final TextView textview1 = _view.findViewById(R.id.textview1);
final TextView textview2 = _view.findViewById(R.id.textview2);
final TextView textview3 = _view.findViewById(R.id.textview3);
textview1.setText(currency_list.get((int)_position).get("currency").toString());
textview2.setText(currency_list.get((int)_position).get("abbreviation").toString());
textview3.setText(currency_list.get((int)_position).get("symbol").toString());
//_rippleRoundStroke(linear1, "#26244D", "#ffffff", 20, 0, "#232146");
_rippleRoundStroke(linear2, "#27325C", "#ffffff", 300, 0, "#171731");
_rippleRoundStroke(linear3, "#27325C", "#ffffff", 300, 0, "#232146");
linear2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View _view) {
EditText edittext1 = (EditText) findViewById(R.id.edittext1);
edittext1.setText("1");
//final EditText edittext1 = (EditText)
}
});
linear3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View _view) {
}
});
return _view;
}
}
Tried placing "currency_d.dismiss();" in setOnClickListener List Adapter, gives an error:
Attempt to invoke virtual method 'void android.app.AlertDialog.dismiss()' on a null object reference