androidプログラミング
2018 Jan. 06.2018 Jan. 04.
2018 Jan. 03.
2017 Nov. 23.
2017 Aug. 16.
android, プログラミング, emulator, context, 1行, 読み込み,SD, ファイル読み込み, AlertDialog
preferenceで配列を扱う
https://qiita.com/ueno-yuhei/items/d51c00c5be3971f4cd40コマンドラインからのemulator起動
$ Android/Sdk/tools/emulator -avd EMULATOR -qemu -m 512 -enable-kvmEMULATOR: advの名前
context
参考サイトhttp://yuki312.blogspot.jp/2012/02/thisgetapplicationcontextactivityapplic.html
1行読み込み
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(); } } }
SDカード上のファイルの読み込み
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(); } } }
AlertDialog setItems()利用時のコードと挙動
サンプル1 ダイアログにボタンを置かず、アイテムをクリックすれば前画面に戻る
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(); } }); } }
サンプル2 ダイアログにボタンを置かず、アイテムをクリックしても前画面に戻らない
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(); } }
サンプル3 ダイアログにボタンを置くが、アイテムのクリックでは前画面に戻らない
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(""); } }); } }
0 件のコメント:
コメントを投稿