import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
// 比较重要的几个import,使用Alt+回车不太容易导入
import android.widget.ListPopupWindow;
import android.view.ViewGroup.LayoutParams;
import android.view.Gravity;
import android.os.Build;
public class MainActivity extends AppCompatActivity {
private ListPopupWindow mPopup;
private String[] mGoodArray={"pencil", "potato", "peanut", "carrot", "cabbage", "cat"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText usernameEt = (EditText) findViewById(R.id.main_usernameEt);
usernameEt.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
// 点击 edit 控件时弹出列表
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
mPopup.setDropDownGravity(Gravity.END);
}
mPopup.setAnchorView(v);
mPopup.show();
}
});
// 创建 ListPopupWindow
mPopup = new ListPopupWindow(this);
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, mGoodArray);
mPopup.setAdapter(adapter);
mPopup.setWidth(LayoutParams.WRAP_CONTENT);
mPopup.setHeight(LayoutParams.WRAP_CONTENT);
mPopup.setModal(true);
mPopup.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// 单击列表项时的反应
usernameEt.setText(mGoodArray[position]);
usernameEt.setSelection(usernameEt.getText().length());
mPopup.dismiss();
}
});
}
}