关于访问字符串中的信息的超级新手问题。我把一个使用fragmentpager和PagerTabStrip的应用程序组合在一起。
它应该在选项卡上显示标题,但是我没有显示任何内容......因为我是一个全新的黑客攻击他的方式。我非常感谢这个社区。 p>
从我调用内容的布局文件(一旦我将其修改为标题 - id @ pager_header对吧?):
<android.support.v4.view.PagerTabStrip
android:id="@+id/pager_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:paddingBottom="4dp"
android:paddingTop="4dp"
android:textColor="#ffffff" />
我的代码为我提供了可刷卡的内容页面:
公共课诗歌扩展了FragmentActivity {@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.contentpage);
/** Getting a reference to the ViewPager defined the layout file */
ViewPager pager = (ViewPager) findViewById(R.id.pager);
/** Getting fragment manager */
FragmentManager fm = getSupportFragmentManager();
/** Instantiating FragmentPagerAdapter */
MyFragmentPagerAdapter pagerAdapter = new MyFragmentPagerAdapter(fm);
/** Setting the pagerAdapter to the pager object */
pager.setAdapter(pagerAdapter);
}
}
我的代码应该从字符串参考文件中获取标题。
public class MyFragment extends Fragment{
int mCurrentPage;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/** Getting the arguments to the Bundle object */
Bundle data = getArguments();
/** Getting integer data of the key current_page from the bundle */
mCurrentPage = data.getInt("current_page", 0);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.myfragment_layout, container,false);
TextView tv = (TextView ) v.findViewById(R.id.tv);
tv.setMovementMethod(new ScrollingMovementMethod());
switch(mCurrentPage){
case 0:
tv.setText(" ");
break;
case 1:
tv.setText(R.string.content_1);
break;
case 2:
tv.setText(R.string.content_2);
break;
case 3:
tv.setText(R.string.content_3);
break;
}
return tv;
}
}
如何从中获取pager_header?
示例相关字符串是:
<string name="content_1">Welcome to this app!</string>
我想我需要更好地理解字符串,因为我来自更多的文本内容背景。
如何在stings.xml文件中包含允许应用引用与网页浏览相关联的内容的指标,以便我可以在标签中显示该内容?我如何做到这一点,以便内容显示“欢迎使用此应用程序”,但标签中的标题显示“主页”?
我认为好像每个条目(页面)就像数据库中的一行,其中一个参考点是标题,一个是内容,一个是链接或其他内容。每个都有自己的ID,对吗?
提前感谢您向初学者解释这一点。
答案 0 :(得分:0)
您需要在getPageTitle(int position)
中实施MyFragmentPagerAdapter
。从此方法返回的String
用于设置PagerTabStrip
的标题。
@Override
public CharSequence getPageTitle(int position) {
Log.v(TAG, "getPageTitle");
String tabTitle;
switch(position) {
case 0:
tabTitle = "Tab #0";
break;
case 1:
tabTitle = "Home";
break;
case 2:
tabTitle = "Tab #2";
break;
case 3:
tabTitle = "Tab #3";
break;
default:
tabTitle = "Default Tab Title";
break;
}
return tabTitle;
}
您可以通过调用添加到Bundle
的{{1}}上的setArguments(Bundle args)
,使用MyFragments
传递标题和内容参数,从而使其更具动态性}。在ViewPager
MyFragment
中,您可以根据传入的内容onCreateView()
参数设置内容。然后在String
中,您可以在MyFragmentPagerAdapter
处获得对Fragment
的引用,并直接从position
获取标题。