亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何對多個 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 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號