[英]Open URL by click on navigation drawer item
My main java code :我的主要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) {
}
});
}
}
My homefragment code :我的 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;
}
}
This code uses fragments.此代码使用片段。 I want to open an URL (example www.google.com ) from click on navigation drawer item.
我想通过点击导航抽屉项目打开一个 URL(例如www.google.com )。 Please help, I am new on this android development.
请帮忙,我是这个android开发的新手。
When a navigation item is clicked, I do not want this fragment page to open, instead I want to open an URL.当导航项被点击时,我不想打开这个片段页面,而是想打开一个 URL。
Add this inside your listener:在您的侦听器中添加以下内容:
if(fragment instanceof HomeFragment)
{
Intent browserIntent = new Intent(Intent.ACTION_VIEW,
Uri.parse("http://www.google.com")); startActivity(browserIntent);
}
EDIT::编辑::
I found the library code that you're using.我找到了您正在使用的库代码。 It has a onClickListener.
它有一个 onClickListener。 Try this :
尝试这个 :
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.