Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不要将文本显示与设置文本连接起来,而是使用android资源?_Java_Android_Intellij Idea - Fatal编程技术网

Java 不要将文本显示与设置文本连接起来,而是使用android资源?

Java 不要将文本显示与设置文本连接起来,而是使用android资源?,java,android,intellij-idea,Java,Android,Intellij Idea,在上面的代码中,它说不要将文本显示与设置文本连接起来,而是使用ANDROID资源,而且,我的viewpager不工作,它没有显示我的片段,我相信这与此有关,有什么建议吗? 下面是我的主要活动的其余部分,我设置了我的viewpager,但它不能与我的片段一起工作,或者当我加载它时 @Override public View onCreateView(LayoutInflater inflater,@Nullable ViewGroup container,@Nullable Bundle sa

在上面的代码中,它说不要将文本显示与设置文本连接起来,而是使用ANDROID资源,而且,我的viewpager不工作,它没有显示我的片段,我相信这与此有关,有什么建议吗? 下面是我的主要活动的其余部分,我设置了我的viewpager,但它不能与我的片段一起工作,或者当我加载它时

 @Override
 public View onCreateView(LayoutInflater inflater,@Nullable ViewGroup container,@Nullable Bundle savedInstanceState) {
     View layout=inflater.inflate(R.layout.my_fragment, container, false);
     textview=(TextView)layout.findViewById(R.id.position);
     Bundle bundle=getArguments();
         if(bundle!=null){
             System.out.println("not null");
             textview.setText("The Page Currently Selected is"+bundle.getInt("position"));
            }
     System.out.println(" null");
     return layout;
这里有两件事

首先,您应该使用参考资料字符串和格式化方法。 在res/strings.xml中添加当前行

public class MainActivity extends ActionBarActivity {
private Toolbar mToolbar;
private ViewPager mPager;
private SlidingTabLayout mTabs;
private static final String KEY_FRAGMENT="position";


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

    mToolbar=(Toolbar)findViewById(R.id.app_bar);
    setSupportActionBar(mToolbar);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
    NavigationFragment drawerlayout=(NavigationFragment)
            getSupportFragmentManager().findFragmentById(R.id.fragment_navigation);
    drawerlayout.setUp(R.id.fragment_navigation,(DrawerLayout)findViewById(R.id.drawer_layout),mToolbar);
    mPager=(ViewPager)findViewById(R.id.pager);
    mPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
    mTabs=(SlidingTabLayout)findViewById(R.id.tabs);
    mTabs.setViewPager(mPager);

}

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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.action_settings) {
        return true;
    }
    if(id==R.id.navigate){
        startActivity(new Intent(this, NavigateTo.class));
    }

    return super.onOptionsItemSelected(item);
}


class MyPagerAdapter extends FragmentPagerAdapter {
    String[]tabs;

    public MyPagerAdapter(FragmentManager fm) {
        super(fm);
        tabs=getResources().getStringArray(R.array.tabs);
    }

    @Override
    public Fragment getItem(int position) {
        MyFragment myFragment=MyFragment.getInstance(position);

        return myFragment;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return tabs[position];
    }

    @Override
    public int getCount() {
        return 3;
    }
    //constructing a fragment class in the MainActivity(UPDATE THIS)
}
    public static class MyFragment extends Fragment{
        private TextView textview;
        //in position represents the position that is shown inside the          fragment
        public static MyFragment getInstance(int position){
        MyFragment myFragment=new MyFragment();
            Bundle args=new Bundle();
            //UPDATE PUT A KEY IN FOR "position"
            args.putInt(KEY_FRAGMENT,position);
                    myFragment.setArguments(args);
            return myFragment;
        }

        @Override
        public View onCreateView(LayoutInflater inflater,@Nullable ViewGroup container,@Nullable Bundle savedInstanceState) {
            View layout=inflater.inflate(R.layout.my_fragment, container, false);
            textview=(TextView)layout.findViewById(R.id.position);
            Bundle bundle=getArguments();
            if(bundle!=null){
            System.out.println("not null");
                textview.setText("The Page Currently Selected is"+bundle.getInt("position"));
            }
            System.out.println(" null");
            return layout;

        }
    }
}
更多信息请点击此处:


关于第二点,它与前面的警告没有联系,应该还有一些我没有注意到的东西。可能您的textView的颜色与您的背景颜色相同,使其不可见。

使用try-catch包装textView.setText(“当前选择的页面是”+bundle.getInt(“position”););。不,这不起作用,是的,它们是不同的颜色,myviewpager根本没有响应
<string name="resource_id">"The Page Currently Selected is %d$1"</string>
getResources().getString(R.id._resource_id, bundle.getInt("position"));