[英]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.