我是Android编程新手,并尝试开发TIC TAC TOE游戏。我已经创建了gameLogic()方法,问题在于它无法正常工作,单击ImageView意味着没有显示任何图像。任何帮助将受到高度赞赏。
这是我的代码:
public class MainActivity extends AppCompatActivity {
public void gameLogic(View view) {
ImageView tappedView = (ImageView)view;
tappedView.setTranslationY(-3000f);
tappedView.setImageResource(R.drawable.black);
tappedView.animate().translationYBy(3000f).setDuration(500);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
答案 0 :(得分:0)
public void onClick (View view) {
ImageView tappedView = (ImageView)view;
tappedView.setTranslationY(-3000f);
tappedView.setImageResource(R.drawable.black);
tappedView.animate().translationYBy(3000f).setDuration(500)
尝试将班级名称更改为onClick
,然后转到XML设置按钮的页面,并在图片视图按钮中声明onClick
方法。
您所要做的就是让设计页面知道代码的位置,提供一个通用名称来查找单击的内容。
此外,您还必须添加一个onClick
侦听器,该侦听器侦听要单击的按钮,因为代码应该知道它链接到哪个按钮。
因此,在按钮Id上声明一个setonclicklistener方法,然后你就可以了。
在布局设置后,也要在覆盖中编写代码。
希望你明白:)
如果你是新手,请先尝试使用Android,这将非常有帮助我知道在最初的几天里它是多么挣扎。
答案 1 :(得分:0)
猜猜你是Android新手。您可以通过两种不同的方式调用gameLogic
方法。
定义XML View元素的XML属性。
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/margin_comp_default"
android:layout_marginStart="@dimen/margin_comp_default"
android:text="@string/frag_OR"
android:textColor="@color/colorAccent"
android:textSize="@dimen/font_size11sp"
android:onClick="gameLogic"/>
我不知道您在申请中使用的确切事件,因为您未在问题中发帖。看来你现在正以这种方式使用。
imageView.setOnClickListener((v) -> {
gameLogic (v);
});
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
gameLogic (v);
}
});
不确定您是否希望我在此处使用同一事件来触发您的计划。
在这两种方式之间,我个人更喜欢第二种方式来声明侦听器,更好地在onCreate
或onStart
生命周期方法中声明它们。
我更喜欢第二种方式的原因是,它更容易识别类中的解决问题,因为它在编译时提示错误。尽管Android Studio在XML UI编辑器中提供了出色的工具,但对我来说它有时会出现问题。