Привет У меня есть проект, в котором один Activity
и несколько layout
. В макетах содержатся различные элементы, такие как кнопки. Я не могу добавить кнопки для этих слушателей с основного Activity
. method onClick()
используется в деятельности (активность реализует View.OnClickListener
)Слушатель для кнопки внешнего макета
public class MainActivity extends Activity implements View.OnTouchListener {
//....
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FrameLayout mainLayout = (FrameLayout) findViewById(R.id.container);
mainLayout.setOnTouchListener(this);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View one = (View) LayoutInflater.from(this).inflate(R.layout.one, null);
flipper = (ViewFlipper) findViewById(R.id.viewFlip);
int layouts[] = new int[]{R.layout.one, R.layout.two, R.layout.three};
for (int layout : layouts) {
flipper.addView(inflater.inflate(layout, null));
}
conBut = (Button) one.findViewById(R.id.conBut2);
conBut.setOnClickListener(new listen());
}
private class listen implements View.OnClickListener {
@Override
public void onClick(View view) {
// ....
}
}
//....
}
Результат представляет собой кнопку, без действия. Пожалуйста, помогите мне.
UPD1:
public boolean onTouch(View view, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
fromPosition = event.getX();
break;
case MotionEvent.ACTION_MOVE:
float toPosition = event.getX();
if ((fromPosition - MOVE_LENGTH) > toPosition) {
fromPosition = toPosition;
flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.go_next_in));
flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.go_next_out));
flipper.showNext();
} else if ((fromPosition + MOVE_LENGTH) < toPosition) {
fromPosition = toPosition;
flipper.setInAnimation(AnimationUtils.loadAnimation(this, R.anim.go_prev_in));
flipper.setOutAnimation(AnimationUtils.loadAnimation(this, R.anim.go_prev_out));
flipper.showPrevious();
}
default:
break;
}
return true;
}
UPD2
public class MainActivity extends Activity implements View.OnTouchListener {
private class listen implements View.OnClickListener {
@Override
public void onClick(View view) {
makeMsg("Hello from onClick!", Toast.LENGTH_LONG);
switch (view.getId()) {
case R.id.conBut2: {
makeMsg("Hello by Button2!", Toast.LENGTH_LONG);
case R.id.regRad: {
makeMsg("Hello by RadioButton!", Toast.LENGTH_LONG);
}
}
;
break;
}
}
}
private void makeMsg(String txt, int dur) {
Toast.makeText(this, txt, dur).show();
}
}
Я не понимаю вопроса. Можете ли вы быть более ясными? – Emmanuel
(Активность реализует View.OnClickListener) ??? Открытый класс MainActivity extends Activity реализует View.OnTouchListener ??? – AndRSoid
Нет, активность реализует OnTouchListener для ViewFlipper. Listen class реализует OnClickListener, который обрабатывается и кликает событие – 0xDEADBEEF