20161008 以下のコードは未完成
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PointF;
import android.view.MotionEvent;
import android.view.View;
import java.util.HashMap;
//タッチイベントの処理
public class MainActivity extends Activity {
//アクティビティ起動時に呼ばれる
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(new TouchView(this));
}
}
//タッチイベントの処理
class TouchView extends View {
private HashMap<String,PointF> hashMap = new HashMap<String, PointF>();
//PointF 画面をタッチした際にそのXとY座標を取って置く
//PointFのxとyはfloat型となっています。
//hashMap.put("りんご", "apple");のように使う。
//コンストラクタ
public TouchView(Context context) {
super(context);
setBackgroundColor(Color.WHITE);
}
//描画時に呼ばれる
@Override
protected void onDraw(Canvas canvas) {
//描画オブジェクトの生成
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setTextSize(48);
//タッチXY座標の描画
canvas.drawText("TouchEx>", 0, 60*1, paint);
//SetオブジェクトをtoArrayメソッドでObject配列に変換します。
Object[] objectKey = hashMap.keySet().toArray();
for (int i = 0; i < objectKey.length; i++) {
PointF position = (PointF)hashMap.get(objectKey[i]);
canvas.drawText((int)position.x+","+(int)position.y, 0, 120+60*i, paint);
}
}
//タッチ時に呼ばれる(1)
@Override
public boolean onTouchEvent(MotionEvent event) {
//アクション種別とタッチ数の取得(2)
//タッチイベントのアクション種別はMotionEventクラスのgetAction()メッソドで取得する。
int action = event.getAction();
//画面のタッチ数はgetPointerCount()メソッドで取得する。
//System.out.println("action: " + action);
int count = event.getPointerCount();
System.out.println("count: " + count);
//アクションインデックスとポインタIDの取得(3)
int index = event.getActionIndex();
int pointerID = event.getPointerId(index);
//タッチ位置の取得(4)
switch (action&MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
//System.out.println("MotionEvent.ACTION_DOWN ");
case MotionEvent.ACTION_POINTER_DOWN:
hashMap.put(""+pointerID, new PointF(event.getX(), event.getY()));
break;
case MotionEvent.ACTION_MOVE:
for (int i = 0; i < count; i++) {
PointF pos = hashMap.get(""+event.getPointerId(i));
pos.x = event.getX(i);
pos.y = event.getY(i);
}
break;
case MotionEvent.ACTION_UP:
//System.out.println("ACTION_UP");
case MotionEvent.ACTION_POINTER_UP:
case MotionEvent.ACTION_CANCEL:
hashMap.remove(""+pointerID);
break;
}
invalidate();
return true;
}
}
20161008 put get
import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import java.util.HashMap; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); HashMap<String, String> hashMap = new HashMap<String, String>(); //HashMap#putメソッドは、 // 第1引数に指定された値をキーに、第2引数の値をセットします。 hashMap.put("key1", "value1"); hashMap.put("key2", "value2"); hashMap.put("key3", "value3"); //連想配列の中身の要素順は、必ずしもputメソッドでセットされた順番になるとは「限りません」ので、注意してください。 //keySetメソッドはHashMapオブジェクトに格納されたキーの一覧をSetオブジェクトとして返します。 System.out.println("keySet: " + hashMap.keySet()); //ここではそのSetオブジェクトをtoArrayメソッドでObject配列に変換します。 Object[] objectKey=hashMap.keySet().toArray(); for(int i=0;i<objectKey.length;i++){ System.out.println("key: " + objectKey[i]); //連想配列の中身にアクセスするのは、HashMap#getメソッドの役割です。 System.out.println("value: " + hashMap.get(objectKey[i])); } } }
20160928 keySet()
package com.example.kunihiro.myapplication;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;
import java.util.HashMap;
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
HashMap<String,String> hashMap = new HashMap<String, String>();
hashMap.put("key1", "value1");
hashMap.put("key3", "value3");
hashMap.put("key2", "value2");
String string="HashMap.keySet: " + hashMap.keySet().toString();
Toast.makeText(getApplicationContext(),string, Toast.LENGTH_LONG).show();
}
}
20160928
package com.example.kunihiro.myapplication;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;
import java.util.HashMap;
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
HashMap<String,String> map = new HashMap<String,String>();
map.put("りんご", "apple");
map.put("バナナ","banana");
String string=map.get("りんご");
Toast.makeText(getApplicationContext(),string, Toast.LENGTH_SHORT).show();
}
}