【问题标题】:Text Strings in a fragment with setText带有 setText 的片段中的文本字符串
【发布时间】:2013-01-23 21:50:07
【问题描述】:

提前感谢您的帮助。

我想在片段中注入不同的字符串,但我不确定如何。

此时我借用的代码是:

公共类 MyFragment 扩展 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());
    tv.setText("You are viewing the page #" + mCurrentPage + "\n\n" +"\n\n" + "Swipe Horizontally left / right");       
    return tv;

}

这是我想做的,只是我想根据它所在的页面显示不同的文本字符串。我在此示例代码中看到可以更新页码 (mCurrentPage),但我想将其与不同的文本字符串相关联。

谢谢!

【问题讨论】:

  • 欢迎来到stackoverflow!您能否更好地解释一下您正在使用什么并添加一些补充标签(如果您能找到合适的)?
  • 感谢 Daniele 的友好请求。我添加了更多标签。我有点不知所措。 :-)

标签: android string switch-statement fragment


【解决方案1】:

只需将 setText() 放入 switch case,例如:

switch(mCurrentPage){
case 0:
   tv.setText("string one");
break;
case 1:
   tv.setText("string two");
break;
}

【讨论】:

  • 这行得通,我已经适应了——我是初学者,所以可能有更好的方法——但我认为这种方式将文本放入代码中,但我实际上希望找到一种方法让 tv.setText 通过 id 引用字符串,以便它可以从 strings.xml 文件中获取该文本,而不是在代码中提取文本。这有意义吗?
  • 当然,你也可以在你的文件夹 /res/values 中创建一个文件 strings.xml 你可以创建一些字符串并在你的代码中使用它们: R.string.string_one 阅读 android 文档here了解更多详情
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-13
  • 2021-03-15
相关资源
最近更新 更多