package indrora.atomic.dialog; import indrora.atomic.model.Extra; import java.util.ArrayList; import indrora.atomic.R; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.ListView; public class AddAliasView extends LinearLayout implements OnClickListener, OnItemClickListener, TextWatcher { private EditText aliasInput; private ArrayAdapter<String> adapter; private ArrayList<String> aliases; private Button addButton; public AddAliasView(Context context, ArrayList<String> aliases) { super(context); this.aliases = (ArrayList<String>)(aliases.clone()); LayoutInflater.from(context).inflate(R.layout.aliasadd, this, true); aliasInput = (EditText)findViewById(R.id.alias); aliasInput.addTextChangedListener(this); adapter = new ArrayAdapter<String>(this.getContext(), R.layout.aliasitem, this.aliases); ListView list = (ListView)findViewById(R.id.aliases); list.setAdapter(adapter); list.setOnItemClickListener(this); addButton = (Button)findViewById(R.id.add); addButton.setOnClickListener(this); } /** * On Click */ @Override public void onClick(View v) { switch ( v.getId() ) { case R.id.add: String alias = aliasInput.getText().toString().trim(); if(alias.length() == 0 ) { return; } aliases.add(alias); adapter.notifyDataSetChanged(); aliasInput.setText(""); break; } } public ArrayList<String> getAliases() { return aliases; } /** * On item clicked */ @Override public void onItemClick(AdapterView<?> list, View item, int position, long id) { final String alias = adapter.getItem(position); AlertDialog.Builder builder = new AlertDialog.Builder(this.getContext()); builder.setTitle(alias); builder.setPositiveButton(R.string.action_remove, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { aliases.remove(alias); adapter.notifyDataSetChanged(); } }); AlertDialog alert = builder.create(); alert.show(); } /** * On text changed */ @Override public void onTextChanged(CharSequence s, int start, int before, int count) { addButton.setEnabled(aliasInput.getText().length() > 0); } /** * After text changed */ @Override public void afterTextChanged(Editable s) { // Do nothing. } /** * Before text changed */ @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // Do nothing. } }