簡體   English   中英

通過單擊導航抽屜項目打開 URL

[英]Open URL by click on navigation drawer item

我的主要java代碼:

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
   
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
 
import com.shrikanthravi.customnavigationdrawer2.data.MenuItem;
import com.shrikanthravi.customnavigationdrawer2.widget.SNavigationDrawer;
    
import java.util.ArrayList;
import java.util.List;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
    
public class MainActivity extends AppCompatActivity {
    
    SNavigationDrawer sNavigationDrawer;
    Class fragmentClass;
    public static Fragment fragment;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        sNavigationDrawer = findViewById(R.id.navigationDrawer);
  
        // Menu add
   
        List<MenuItem> menuItems = new ArrayList<>();
 
        menuItems.add(new MenuItem("Home",R.drawable.ic_home));
        menuItems.add(new MenuItem("About us",R.drawable.ic_about));
        menuItems.add(new MenuItem("Subscribe Us",R.drawable.ic_subscribe));
        menuItems.add(new MenuItem("Follow Us",R.drawable.ic_follow));
        menuItems.add(new MenuItem("Rate Us",R.drawable.ic_rate));
  
        sNavigationDrawer.setMenuItemList(menuItems);
 
        fragmentClass = HomeFragment.class;
   
        try {
            fragment = (Fragment)fragmentClass.newInstance();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        }
    
        
        if (fragment!= null)
        {
            FragmentManager fragmentManager = getSupportFragmentManager();

   
 fragmentManager.beginTransaction().setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out).replace(R.id.frameLayout, fragment).commit();
    
        }
    
    
        sNavigationDrawer.setDrawerListener(new  NavigationDrawer.DrawerListener() {
            @Override
            public void onDrawerOpening() {
    
            }
    
            @Override
            public void onDrawerClosing() {
    
                try {
                    fragment = (Fragment)fragmentClass.newInstance();
                } catch (IllegalAccessException e) {
                     e.printStackTrace();
                } catch (InstantiationException e) {
                     e.printStackTrace();
                }
    
                if (fragment!= null)
                {
                    FragmentManager fragmentManager = getSupportFragmentManager();
    
                    fragmentManager.beginTransaction().setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out).replace(R.id.frameLayout, fragment).commit();
    
                }
    
    
            }
    
            @Override
            public void onDrawerOpened() {
    
            }
    
            @Override
            public void onDrawerClosed() {
    
            }
    
            @Override
            public void onDrawerStateChanged(int newState) {
    
            }
    
        });
    }
}

我的 homefragment 代碼:

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
    
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

public class HomeFragment extends Fragment
{

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

       View view = inflater.inflate(R.layout.fragment_home,container,false);
       return  view;
    }
}

此代碼使用片段。 我想通過點擊導航抽屜項目打開一個 URL(例如www.google.com )。 請幫忙,我是這個android開發的新手。

當導航項被點擊時,我不想打開這個片段頁面,而是想打開一個 URL。

在您的偵聽器中添加以下內容:

if(fragment instanceof HomeFragment)
{
   Intent browserIntent = new Intent(Intent.ACTION_VIEW,
   Uri.parse("http://www.google.com")); startActivity(browserIntent);
}

編輯::

我找到了您正在使用的庫代碼。 它有一個 onClickListener。 嘗試這個 :

 sNavigationDrawer.setOnMenuItemClickListener(new SNavigationDrawer.OnMenuItemClickListener() {
            @Override
            public void onMenuItemClicked(int position) {
                if(position==0){
                    Intent browserIntent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.google.com"));
                    startActivity(browserIntent);
                }
            }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM