当前位置: 首页 > 面试题库 >

我如何在mainActivity中找到最后一个片段

赵河
2023-03-14
问题内容

我想viewPager支持Rtl,并在最后一个片段上设置当前项目,但是当我在自己的代码中编写此代码时MainActivity.java,我不知道如何访问最后一个片段。

根据这篇文章,我想让我viewPager成为Rtl:

iViewPager.setCurrentItem();

MainActivity.java ,我在其中定义viewPager

package com.example.imajid.grid2.activities;

import android.support.design.widget.NavigationView;
import android.support.design.widget.TabLayout;
import android.support.v4.view.GravityCompat;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;

import com.example.imajid.grid2.R;
import com.example.imajid.grid2.adapters.PagerAdapter;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

    private DrawerLayout mDrawerLayout;

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

        //----------------------- set toolbar
        Toolbar iToolbar = (Toolbar) findViewById(R.id.xmlToolbar);
        setSupportActionBar(iToolbar);

        //------------------------------ initialize toolbar
        ActionBar actionBar = getSupportActionBar();
        actionBar.setHomeAsUpIndicator(R.drawable.menu);
        actionBar.setDisplayHomeAsUpEnabled(true);

        //****************************  find tablayout *****************************//
        TabLayout iTabLayout = (TabLayout) findViewById(R.id.xmlTabLayout);
        iTabLayout.addTab(iTabLayout.newTab());
        iTabLayout.addTab(iTabLayout.newTab());
        iTabLayout.addTab(iTabLayout.newTab());

        iTabLayout.setTabGravity(TabLayout.GRAVITY_FILL);

        //*******************************  Array list for sending titles *********************************//

        ArrayList<String> viewPagersTitle = new ArrayList<String>();

        viewPagersTitle.add("صفحه اصلی");
        viewPagersTitle.add("فیلم");
        viewPagersTitle.add("آهنگ");

        //******************************* find view pager in xml *****************************//

        ViewPager iViewPager = (ViewPager) findViewById(R.id.xmlViewPager);

        //************************************** Rtlizer view pager ************************************

        ====>iViewPager.setCurrentItem();

        //**************************************  find adapter for view pager *******************************//

        PagerAdapter viewPagerAdapter = new PagerAdapter(getSupportFragmentManager(), iTabLayout.getTabCount(), viewPagersTitle);

        //************************************  set adapter for view pager *******************************//
        iViewPager.setAdapter(viewPagerAdapter);

        //***********************************  setup tablayout to view pager********************************//
        iTabLayout.setupWithViewPager(iViewPager);

        mDrawerLayout = (DrawerLayout) findViewById(R.id.xmlDrawerLayoutRoot);

        //-------------------------------------- find navigation view
        NavigationView navigationView = (NavigationView)findViewById(R.id.xmlNavigation);
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(MenuItem menuItem) {
                menuItem.setChecked(true);
                mDrawerLayout.closeDrawers();
                Toast.makeText(MainActivity.this, menuItem.getTitle(), Toast.LENGTH_SHORT).show();
                return true;
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main_menu, menu);
        return true;
    }

    //onoptionItemSelected
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int itemId = item.getItemId();
        String btnName = null;

        switch (itemId){
            case android.R.id.home:
                mDrawerLayout.openDrawer(GravityCompat.START);
                return true;

            case R.id.menu_setting:
                btnName = "Setting";
                break;
            case R.id.menu_compass:
                btnName = "Compass";
                break;
            case R.id.menu_help:
                btnName = "Help";
                break;
        }

        Toast.makeText(MainActivity.this, "You clicked at " + btnName, Toast.LENGTH_SHORT).show();
        return true;
    }
}

最后,这是我的视图寻呼机适配器:

package com.example.imajid.grid2.adapters;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;

import com.example.imajid.grid2.fragments.TabFragment1;
import com.example.imajid.grid2.fragments.TabFragment2;
import com.example.imajid.grid2.fragments.TabFragment3;

import java.util.ArrayList;

/**
 * Created by imajid on 12/8/2015.
 */
public class PagerAdapter extends FragmentStatePagerAdapter {

    private ArrayList<String> titles;
    int numOfTabs;

    public PagerAdapter(FragmentManager fm, int numOfTabs, ArrayList<String> titles) {
        super(fm);
        this.numOfTabs = numOfTabs;
        this.titles = titles;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {

            case 0:
                TabFragment1 tab1 = new TabFragment1();
                return tab1;
            case 1:
                TabFragment2 tab2 = new TabFragment2();
                return tab2;
            case 2:
                TabFragment3 tab3 = new TabFragment3();
                return tab3;
            default:
                return null;
        }
    }

    @Override
    public int getCount() {
        return  this.numOfTabs;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return titles.get(position);
    }
}

问题答案:

因为我用:

setCurrentItem(viewPagerAdapter.getCount());

在设置适配器之前,它无法正常工作,在设置适配器之后,我应该编写此代码,这要归功于Kevin Chris和K Neeraj Lal。



 类似资料:
  • 问题内容: 图片我想获得一个特定的框架,你可以在图像中找到的“href”,我试图尽我可以,但我不能够得到的“href” 我尝试了上面的代码,我使用了该框架的Xpath并尝试获取该框架的href。链接:“ https://iaeme.com/ijciet/issues.asp?VType=8&IType=10&JType=IJCIET&PageNumber=1 ” 问题答案: 按照您共享以获取所有“

  • 我正在学习Android Google API。我正在创建一个应用程序以通过Google Play服务获取最后一个位置。在尝试了许多教程后,我的位置变得为空。我正在我的手机上运行应用程序,即API 23。我在手机上保留位置和数据设置。下面是我的代码。 渐变相关性: AndroidManifest。xml 主活动代码

  • 问题 你需要去找出一个月的最后一天,但是一年中的各月并没有一个固定时间表。 解决方案 利 用JavaScript 的日期下溢来找到给出月份的第一天: now = new Date lastDayOfTheMonth = new Date(1900+now.getYear(), now.getMonth()+1, 0) 讨论 JavaScript 的日期构造函数成功地处理溢出和下溢情况,使日期的计算

  • 我有一个主类,该类将输出打印到控制台。。。 例如,如果行中包含A和B,我需要打印“Apple” 我将在主方法中通过首先实例化该类的对象来实现这一点,即。 代码示例:

  • 在单链表中,我们知道最后一个节点的下一个指向,这样我们就可以通过遍历找到它。 如果单链表的最后一个节点指向某个中间节点,那么我们如何找到最后一个节点?

  • 我在Mongo DB Atlas中收集了一个用户名称。 它还在继续。 在节点中可以使用什么查询。js和mongoose找到集合中的最后一个元素了吗?当集合不断动态增加时,如何获取集合最后一个元素的id?