0

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

SerjantArbuz
  • 982
  • 1
  • 12
  • 16
Smith
  • 1
  • 2

0 Answers0