android Contextの取得
2018 Jan. 21.HogeActivityのContextの取得
AlertDialog.Builder(Context)でのContextの取得
new AlertDialog.Builder(HogeActivity.this);
getApplicationContext()ではエラーとなる。
BufferedReader br = null; try { br = new BufferedReader(new FileReader(file)); } catch (FileNotFoundException e) { e.printStackTrace(); if (br != null) try { br.close(); } catch (IOException e1) { e1.printStackTrace(); } } String str; try { while((str = br.readLine()) != null){ Log.v("Read",str); } } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } }
private String filename = "hoge.txt"; private File directory = Environment.getExternalStorageDirectory(); private String filepath = directory.getAbsolutePath() + "/YourDir/" + filename; private File file = new File(filepath); // SDカードマウント状態 final String state = Environment.getExternalStorageState(); if (!state.equals(Environment.MEDIA_MOUNTED)) { try { throw new IOException("No Mount"); } catch (IOException e) { e.printStackTrace(); } } BufferedReader br = null; try { br = new BufferedReader(new FileReader(file)); } catch (FileNotFoundException e) { e.printStackTrace(); if (br != null) try { br.close(); } catch (IOException e1) { e1.printStackTrace(); } } String str; try { while((str = br.readLine()) != null){ Log.v("Read",str); } } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } }
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final Button btn = (Button)findViewById(R.id.btn); btn.setText("Show Dialog"); btn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { final CharSequence[] items = {"car", "train", "byke"}; new AlertDialog.Builder(MainActivity.this) .setTitle("Select tool") .setIcon(R.drawable.myIcon) .setItems(items, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dlg, int which) { btn.setText(String.format("%sが選択されました。",items[which])); } }) .show(); } }); } }
public class MainActivity extends Activity implements DialogInterface.OnClickListener { final String[] items = {"car", "train", "byke"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final Button btn = (Button)findViewById(R.id.btn); btn.setText("Show Dialog"); btn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { myShowDialog("Not Selected"); } }); } @Override public void onClick(DialogInterface dlg, int which) { myShowDialog(items[which]); } public void myShowDialog(final String titleStr) { AlertDialog.Builder dialog = new AlertDialog.Builder(this); dialog.setTitle(titleStr); dialog.setIcon(R.drawable.myIcon); dialog.setItems(items, this); dialog.show(); } }
public class MainActivity extends Activity implements DialogInterface.OnClickListener { TextView tv; final String[] items = {"car", "train", "byke"}; final ListlistItems = Arrays.asList(items); //配列をList型オブジェクトに変換 @Override public void onClick(DialogInterface dlg, int which) { Log.v("dialog_which", String.valueOf(which)); // int of order of items showDialog(items[which]); } public void showDialog(final String titleStr) { AlertDialog.Builder dialog = new AlertDialog.Builder(this); dialog.setTitle(titleStr); dialog.setIcon(R.drawable.myIcon); dialog.setItems(items, this); dialog.setPositiveButton("決 定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int index) { Log.v("dialog_index", String.valueOf(index)); // unexpected int tv.setText(titleStr); } }); dialog.setNeutralButton("前 へ", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int index) { Log.v("dialog_index", String.valueOf(index)); // unexpected int int i = listItems.indexOf(titleStr); //list内に引数の要素が存在する最小のインデックスを返す int numArray = (i+3-1)%3; tv.setText(items[numArray]); } }); dialog.setNegativeButton("2つ前へ", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int index) { Log.v("dialog_index", String.valueOf(index)); // unexpected int int i = listItems.indexOf(titleStr); //list内に引数の要素が存在する最小のインデックスを返す int numArray = (i+3-2)%3; tv.setText(items[numArray]); } }); dialog.show(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = ((TextView)findViewById(R.id.tv)); findViewById(R.id.btn).setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { showDialog(""); } }); } }