package com.nightonke.githubwidget; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.WindowManager; import android.widget.AdapterView; import android.widget.ListView; import android.widget.TextView; /** * Created by Weiping on 2016/5/1. */ public class LanguageDialog extends Dialog { private Context context; private OnLanguageSelectedListener onLanguageSelectedListener; private ListView listView; private TextView cancel; public LanguageDialog(Context context) { super(context, R.style.ListViewDialog); this.context = context; try { this.onLanguageSelectedListener = (OnLanguageSelectedListener) context; } catch (ClassCastException c) { c.printStackTrace(); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dialog_language); WindowManager.LayoutParams params = getWindow().getAttributes(); params.width = (int) (Util.getScreenWidth(context) * 0.8f); params.height = (int) (Util.getScreenHeight(context) * 0.8f); getWindow().setAttributes(params); listView = findView(R.id.list_view); cancel = findView(R.id.cancel); listView.setAdapter(new LanguageAdapter()); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { SettingsManager.setLanguage(Language.values()[position]); if (onLanguageSelectedListener != null) onLanguageSelectedListener.onLanguageSelected(); LanguageDialog.this.dismiss(); } }); cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { LanguageDialog.this.dismiss(); } }); } private <T extends View> T findView(int id) { return (T) findViewById(id); } public interface OnLanguageSelectedListener { void onLanguageSelected(); } }