【问题标题】:I want to move from MainActivity to another activity using intent, but I don't我想使用意图从 MainActivity 移动到另一个活动,但我没有
【发布时间】:2020-05-19 16:57:03
【问题描述】:

请理解代码可能很复杂。 我在 MainActivity 的底部创建了一个底部栏,并制作了五个不同的选项卡。当您单击“登录”选项卡时,您尝试实现转到另一个活动(登录)的意图,但它不起作用。中间重新执行意图声明时没有任何反应。有什么问题?

MainActivity.java

package com.example.sasohan_main;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentTransaction;

import android.content.Intent;
import android.media.Image;
import android.net.Uri;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.Toast;

import com.roughike.bottombar.BottomBar;
import com.roughike.bottombar.OnTabReselectListener;

public class MainActivity extends FragmentActivity {
    private ImageButton childbtn;
    private ImageButton senibtn;
    private ImageButton immibtn;
    private ImageButton mmmbtn;
    private Button newpage;
    private ChildFragment child_contact;
    private PregnantFragment pregnant_contact;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        BottomBar bottomBar = (BottomBar) findViewById(R.id.bottomBar);
        bottomBar.setOnTabReselectListener(new OnTabReselectListener() {
            @Override
            public void onTabReSelected(int tabId) {
                FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

                if (tabId == R.id.bottom_Login) {
                    Intent intent = new Intent(MainActivity.this, sasohan_Login.class);
                }
            }
        });

    }
}

下面是xml文件夹中存在的botombar.xml文件

MainActivity 识别 botombar.xml 中存在的 botom_Login

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

    <tabs>
        <tab
            id="@+id/bottom_child"
            icon="@drawable/bar_child"
            title="child"/>
        <tab
            id="@+id/bottom_parents"
            icon="@drawable/bottom_parents"
            title="senior"/>
        <tab
            id="@+id/bottom_pregnant"
            icon="@drawable/bottom_pregnant"
            title="pregnant"/>
        <tab
            id="@+id/bottom_baseline"
            icon="@drawable/baseline"
            title="disabled"/>
        <tab
            id="@+id/bottom_Login"
            icon="@drawable/baseline_https_black_18dp"
            title="login"/>
    </tabs>
</PreferenceScreen>

【问题讨论】:

    标签: android android-intent android-activity


    【解决方案1】:

    您忘记调用 startActivity。仅仅创建一个意图不会带你去一个新的活动。您必须根据您的意图调用 startActivity 方法。像这样:

       @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            BottomBar bottomBar = (BottomBar) findViewById(R.id.bottomBar);
            bottomBar.setOnTabReselectListener(new OnTabReselectListener() {
                @Override
                public void onTabReSelected(int tabId) {
                    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
    
                    if (tabId == R.id.bottom_Login) {
                        Intent intent = new Intent(MainActivity.this, sasohan_Login.class);
                        startActivity(intent);
                    }
                }
            });
    
        }
    

    【讨论】:

      【解决方案2】:

      首先你需要从 bottomBar.setOnTabReselectListener 改变函数 到bottomBar.setOnTabSelectListener 就像我在下面提到的那样:

      package com.example.sasohan_main;
      
      import androidx.appcompat.app.AppCompatActivity;
      import androidx.fragment.app.FragmentActivity;
      import androidx.fragment.app.FragmentTransaction;
      
      import android.content.Intent;
      import android.media.Image;
      import android.net.Uri;
      import android.os.Bundle;
      import android.view.MenuItem;
      import android.view.View;
      import android.widget.Button;
      import android.widget.ImageButton;
      import android.widget.Toast;
      
      import com.roughike.bottombar.BottomBar;
      import com.roughike.bottombar.OnTabReselectListener;
      
      public class MainActivity extends FragmentActivity {
          private ImageButton childbtn;
          private ImageButton senibtn;
          private ImageButton immibtn;
          private ImageButton mmmbtn;
          private Button newpage;
          private ChildFragment child_contact;
          private PregnantFragment pregnant_contact;
      
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
              BottomBar bottomBar = (BottomBar) findViewById(R.id.bottomBar);
              bottomBar.setOnTabSelectListener(new OnTabSelectListener() {
                  @Override
                  public void onTabSelected(int tabId) {
                      FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
      
                      if (tabId == R.id.bottom_Login) {
                          Intent intent = new Intent(MainActivity.this, sasohan_Login.class);
                          startActivity(intent)
                      }
                  }
              });
          }
      }
      

      然后正如@MMG 所说,在 if 语句中添加 startActivity(intent)。

      【讨论】:

        【解决方案3】:
        if (tabId == R.id.bottom_Login) { 
            Intent intent = new Intent(MainActivity.this, sasohan_Login.class);
            startActivity(intent); 
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-02-04
          • 1970-01-01
          • 2021-04-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多