Ich habe zwei OnTouchListeners in meinem Code und jedes Mal wenn ich es ausführen - auch wenn ich den Namen des Hörers ändern - es funktioniert nicht.Ich habe zwei View.OnTouchListeners, aber nur eine funktioniert
//here is one
public boolean onTouch(View view, MotionEvent event){
// this is for being able to move a spawned image with no id and id not on the activity till created
final int X = (int) event.getRawX();
final int Y = (int) event.getRawY();
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
_xDelta = X - lParams.leftMargin;
_yDelta = Y - lParams.topMargin;
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_POINTER_DOWN:
break;
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
if (no == 1) ;
//do nothing
else {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
layoutParams.leftMargin = X - _xDelta;
layoutParams.topMargin = Y - _yDelta;
layoutParams.rightMargin = -250;
layoutParams.bottomMargin = -250;
view.setLayoutParams(layoutParams);
break;
}
_root.invalidate();
return true;
}
return true;
}
@Override
public void onBackPressed() {
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle(" exit")
.setMessage("Are you sure you want to exit?." +
"your progress will not be saved")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
startActivity(new Intent(getApplicationContext(), level.class));
}
})
.setNegativeButton("No", null)
.show();
}
Button left, right;
ImageView i1, pic2;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_level1_game);
_root = (ViewGroup) findViewById(R.id.root);
addnumbers = new TextView(this);
addnumbers.setText(Integer.toString(number));
_root.addView(addnumbers);
left = (Button) findViewById(R.id.button1);
right = (Button) findViewById(R.id.button2);
left.setOnTouchListener(this);
right.setOnTouchListener(this);
i1 = (ImageView) findViewById(R.id.imageView2);
findViewById(R.id.button2).setVisibility(View.INVISIBLE);
findViewById(R.id.button1).setVisibility(View.INVISIBLE);
findViewById(R.id.button3).setVisibility(View.INVISIBLE);
findViewById(R.id.button4).setVisibility(View.INVISIBLE);
findViewById(R.id.imageView2).setVisibility(View.INVISIBLE);
}
Hier ist die zweite, die einen Charakter auf dem Bildschirm
public boolean onTouch1(View v, MotionEvent event) {
switch (v.getId()) {
case R.id.button1:
case MotionEvent.ACTION_DOWN: {
RelativeLayout.LayoutParams mParams = (RelativeLayout.LayoutParams)
i1.getLayoutParams();
findViewById(R.id.imageView2).setBackgroundDrawable(getResources().getDrawable(R.drawable.realguy1));
mParams.leftMargin -= 20;
i1.setLayoutParams(mParams);
break;
}
}
Wie ich diesen Code ausführen zu bewegen ist, funktioniert das mit dem OnTouch Zuhörer, aber der andere nicht.
Ich habe viel Forschung gemacht, und alles, was ich versucht habe, funktioniert einfach nicht.
So sorry ich habe Ihnen einige Verwirrung, aber ich verstand nicht viel von was du geschrieben hast, sogar mit der Forschung, die ich getan habe, um zu sehen, ob ich es verstehen konnte – unnamed
In deinem Code hast du 'switch (v.getId()) {case R.id.button1:' ... also tue ich;) Now , Habe ich nur eine weitere case-Anweisung für eine andere Schaltflächen-ID hinzugefügt. Das ist es! –