为了账号安全,请及时绑定邮箱和手机立即绑定

如何对多个 ImageView 使用 onClick 来启动其他活动

如何对多个 ImageView 使用 onClick 来启动其他活动

翻阅古今 2022-01-12 15:08:15
对于 JAVA 文件:public class UserDataInputActivity extends AppCompatActivity{    @Override    protected void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_user_data_input);    }    public void onGenericMenuClick(View view)    {        ImageView pastTests = (ImageView) findViewById(R.id.pasttests);        final Intent intent1 =  new Intent(this, PastDiagnosticResult.class);        ImageView userData = (ImageView) findViewById(R.id.myinfo);        final Intent intent2 =  new Intent(this, UserDataInputActivity.class);        ImageView currentTests = (ImageView) (findViewById(R.id.currenttest));        final Intent intent3 =  new Intent(this, CurrentDiagnosticResultActivity.class);        pastTests.setOnClickListener(new OnClickListener(){            public void onClick(View view)            {                startActivity(intent1);            }});        userData.setOnClickListener(new OnClickListener(){            public void onClick(View view)            {                startActivity(intent2);            }});        currentTests.setOnClickListener(new OnClickListener(){            public void onClick(View view)            {                startActivity(intent3);            }});    }}我的屏幕底部基本上有 3 个图标(imageViews)。我的目标:当我单击菜单上的不同图像时导航到不同的屏幕。但是,我的 java 代码不能正常工作。虽然它可以运行,但在我尝试连续使用 Intents 2 和 3 后它会崩溃。有一个更好的方法吗?
查看完整描述

2 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

您没有onGenericMenuClick()按应有的方式使用。

这是onClick()所有 3 个视图的共同点,因此您无需在其中定义新的侦听器。

改成这样:


public void onGenericMenuClick(View view) {

    Intent intent;


    if(v.getId() == R.id.pasttests) {

        intent =  new Intent(this, PastDiagnosticResult.class);

    } else if (v.getId() == R.id.myinfo) {

        intent =  new Intent(this, UserDataInputActivity.class);

    } else if (v.getId() == R.id.currenttest) {

        intent =  new Intent(this, CurrentDiagnosticResultActivity.class);

    }


    startActivity(intent);

}



查看完整回答
反对 回复 2022-01-12
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

在这种情况下,您应该使用片段而不是活动。


1.用片段替换三个Activity。


2.FragmentManager用于在片段之间切换。


UserDataInputFragment userDataInputFragment = UserDataInputFragment.newInstance("","");


getSupportFragmentManager().beginTransaction()

    .replace(R.id.fragment, userDataInputFragment, "userDataInputFragment")

    .commit();

    //here fragment in R.id.fragment is the container of Fragments


查看完整回答
反对 回复 2022-01-12
  • 2 回答
  • 0 关注
  • 151 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信