导航抽屉:如何使项目将您引导至网站。 Android 工作室

Navigation drawer: how to make the item direct you to a website. Android Studio

大家好,周六非常适合编码:)

我有一个导航抽屉,我可以在其中单击项目,它们会将我定向到片段。但是,当我按下导航抽屉中的某个项目以 link 我进入网站时,我是如何做到这一点的。我不是很擅长物品..

我会 post 三张不同的 imgur 图片 See the 3 images here 因此,当您按下它时,例如:www.google.com 出现在您的常规 "chrome app" 我对 webview 并不感兴趣,因为该网站不是 html5。

这是我的 MainActivity,在它的底部你可以找到我如何使用我的片段的项目。

我是个菜鸟程序员呵呵...不过很好玩!循序渐进学习。

public class MainActivity extends AppCompatActivity


        implements NavigationView.OnNavigationItemSelectedListener {
//TextView tstnr;
    TextView radertst;

    Button sendSMSaon;
    EditText aonTxt;
    //TextView nrladd;








    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);


       // tstnr = (TextView) findViewById(R.id.nummertestsp);
        radertst = (TextView) findViewById(R.id.raderanumtxt);

        sendSMSaon = (Button)findViewById(R.id.skickaaon);
        aonTxt = (EditText)findViewById(R.id.aon);
     //  nrladd = (TextView)findViewById(R.id.numretladd);


    }
//This is where the call for the value in the setttings are.
//Här är så att man kan lägga in values från inställningar till mainactivity.

    public void displayData(View view){

        SharedPreferences prefs =PreferenceManager.getDefaultSharedPreferences(this);
    String name = prefs.getString("example_text", "");
   radertst.setText(name + " ");
    }

//downbelow is where the onresume so the value boots up with the app.
//nedanför är för att appen ska ladda koden i settings direkt när man startar

   @Override
    protected void onResume() {
       super.onResume();
      SharedPreferences prefs =PreferenceManager.getDefaultSharedPreferences(this);

        String name = prefs.getString("example_text", "");
       radertst.setText(name + " ");}



    @Override
    public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            Intent intent = new Intent(this, SettingsActivity.class);
            startActivity(intent);



            return true;
        }




        return super.onOptionsItemSelected(item);
    }


    @SuppressWarnings("StatementWithEmptyBody")
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();
        android.app.FragmentManager fragmentManager = getFragmentManager();


        if (id == R.id.nav_first_layout) {

            fragmentManager.beginTransaction()
                    .replace(R.id.content_frame
                    , new FirstFragment())
                    .commit();
            // Handle the camera action
        } else if (id == R.id.nav_second_layout) {
            fragmentManager.beginTransaction()
                    .replace(R.id.content_frame
                            , new SecondFragment())
                    .commit();

        } else if (id == R.id.nav_third_layout) {
            fragmentManager.beginTransaction()
                    .replace(R.id.content_frame
                            , new ThirdFragment())
                    .commit();




        }




        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;








}
}

在按钮或侦听器的 onClick 方法中需要这样的东西,但是您想处理点击事件:

Intent intent = new Intent("android.intent.action.VIEW",
                Uri.parse("http://www.google.com/"));
startActivity(intent);

如果您不知道如何处理点击本身 check this out.,但我在您的代码中看到您可以,所以没关系。

只需将其添加到您的菜单项中即可

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(browserIntent);

因此,在您的 onNavigationItemSelected 上,您必须添加另一个 if 并搜索您需要的项目的 ID:

我做了一个例子

     @Override
     public boolean onNavigationItemSelected(MenuItem item) {

        int id = item.getItemId();

        if (id == R.id.action_settings) {
            Intent intent = new Intent(this, SettingsActivity.class);
            startActivity(intent);

            return true;
        }

        else if (id == R.id.YOUR_ITEM_ID) {
            Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
            startActivity(browserIntent);

            return true;
        }

        return true;
    }