主にRPA、Androidアプリ開発について投稿しています。メモ書きです。
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
/**汎用利用ではないので、パス固定。
* 端末のファイルアプリのDownloadフォルダから特定の拡張子のファイルを取得する
* @param ex
* @return
*/
public static File[] getDownloadsFiles(String ex) {
String path = "/storage/self/primary/Download";
File dir = new File(path);
File[] files = dir.listFiles();
ArrayList<File> result = new ArrayList<>();
for(File file:files){
if(file.getName().toLowerCase().lastIndexOf(ex) != ex.length()-1){
continue;
}
result.add(file);
}
return result.toArray(new File[result.size()]);
}
buildscript {
repositories {
jcenter()
maven{
url "https://jitpack.io"
}
}
allprojects {build.gradle(app)
repositories {
jcenter()
maven{
url "https://jitpack.io"
}
}
}
dependencies {allprojectsにもmaven~を記述するのがキモ。
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.2'
}
/**
* グループポジションでデータ位置を取得する
* @param groupPosition
* @return
*/
public int getFlatListPosition(int groupPosition){
ExpandableListView elv = ((InputActivity5)context).findViewById(R.id.elvInput);
long packGroup = ExpandableListView.getPackedPositionForGroup(groupPosition);
return elv.getFlatListPosition(packGroup);
}
/**
* パクポジでデータ位置を取得する
* @param groupPosition
* @return
*/
public int getFlatListPosition(int groupPosition,int childPosition){
ExpandableListView elv = ((InputActivity5)context).findViewById(R.id.elvInput);
long packPosition = ExpandableListView.getPackedPositionForChild(groupPosition,childPosition);
return elv.getFlatListPosition(packPosition);
}
/**
* パクポジを取得する 全体⇒親子
* @param flatListPosition
* @return
*/
private int[] getPackPosition(int flatListPosition){
ExpandableListView elv = ((InputActivity5)context).findViewById(R.id.elvInput);
long packed = elv.getExpandableListPosition(flatListPosition);
int groupPosition = ExpandableListView.getPackedPositionGroup(packed);
int childPosition = ExpandableListView.getPackedPositionChild(packed);
return new int[]{groupPosition,childPosition};//親の場合は、childPosition = -1
}
tvSuuryo.setTextSize(12);また、端末の解像度によるレイアウト崩れを防ぐなら、COMPLEX_UNIT_DIP(dp)を指定する。
tvSuuryo.setTextSize(TypedValue.COMPLEX_UNIT_PX,12);
tvSuuryo.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 12);
ViewGroup.MarginLayoutParams textParams = new ViewGroup.MarginLayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);LayoutParamsを設定したうえでレイアウトにaddView
textParams.setMargins(20,0,20,0);
TextView tvSuuryo = new TextView(this);※LayoutParamsでサイズ指定をしないと、MATCH_PARENTが設定されるようだ。
tvSuuryo.setText("3");
tvSuuryo.setLayoutParams(textParams);
llHinmoku.addView(tvSuuryo);
/**
* SQLiteに登録されているTBL名を取得する
* @return
*/
private ArrayList<String> getTblNames() {
ArrayList<String> tblNames = new ArrayList<>();
Cursor cursor = db.rawQuery("select name from sqlite_master where type = 'table'",null);
if(cursor.getCount() != 0){
cursor.moveToFirst();
while(cursor.moveToNext()) {
tblNames.add(cursor.getString(0));//テーブル名を保存
}
}
return tblNames;
}
/**
* テーブル名でカラム一覧を取得する
* @param tblName テーブル名
* @return カラム名一覧
*/
private ArrayList<String> getColumnNames(String tblName){
ArrayList<String> listColumn = new ArrayList<>();
Cursor cursor = db.rawQuery("PRAGMA TABLE_INFO(" + tblName+")",null);
if(cursor.getCount() != 0){
//getString(columnIndex)で取得できるもの
//0:cid、1:name、2:type、3:notnull、4:dflt_value、5:pk
cursor.moveToFirst();
while (cursor.moveToNext()){
listColumn.add(cursor.getString(1));//カラム名は1
}
}
return listColumn;
}
String[] strs = new String[]{"おはよう","こんにちは","こんばんは","おやすみ"};これまた簡単なんだけど、知っておくと便利。
for (int i = 0; i <= 3; i++) {
int id = getResources().getIdentifier("tvHello_" + i, "id",context.getPackageName());
TextView tv = (TextView) findViewById(id);
tv.setText(strs[i]);
}
int id = getResources().getIdentifier("tvColName_" + i ,"id",PioneerActivityForSQLite.this.getPackageName());これだけ。簡単だけど嬉しい設定。
tvTitle.setId(id);
private onFragmentButtonClickedLister listener;・listenerにcontextをぶっこんで使えるようにする
public interface onFragmentButtonClickedLister{
void onNumButton(String val);
void onArrowButton(int type);
}
@Override・OnClickイベントなどから呼び出す。
public void onAttach(Context context) {
super.onAttach(context);
listener = (onFragmentButtonClickedLister)context;
listener.onNumButton(keyStr);
@Override
public void onNumButton(String val) {
@Override
public void onArrowButton(int type) {