我试图从文本输入字段中取一个人的名字,将其发送到另一个Activity,并在TextView中的句子中显示该人的姓名。
我的代码如下:
这是我的一项活动。
String meaningText = mCurrentColor.getMeaning();
meaningText = String.format(meaningText, mYourName);
mColorText.setText(meaningText);
我从另一个类中提取含义字符串,该类包含以下内容:
"Hey %1$s, you chose this which means blah blah....."
然后我想插入从前一个Activity中的EditText中提取的mYourName变量,并将其放在上面的字符串中。
我发现从Team Treehouse教程中进行格式化,并且我按照该项目的代码工作。
我正在使用String.format,它接受一个Locale。
我不确定到底是什么问题,因为我将代码镜像为“T”并且只更改了一些变量名称。
答案 0 :(得分:0)
看到String类的length()方法返回一个int值,该方法返回的最大长度为Integer.MAX_VALUE,即2 ^ 31 - 1(或大约20亿。)
理论上你可以拥有2,147,483,647个字符串。我认为你不应该需要更多。
但是,Android系统会限制您的堆空间,最低可达16 MB。因此,你实际上永远不会达到理论极限,并且会在4-64百万字符范围内的某个地方最大化。 所以,当你可以直接使用你的名字变量和长篇的字符串变量时,你为什么要考虑一个更长的字符串变量。
for Ex:-
String meaning_text = "the very long message you wanted to show..."+ mYourName + "again a long message if you want to show";
所以我的建议是直接使用你的名字变量和你想要显示的信息。
答案 1 :(得分:0)
EditText edt=(EditText)findViewbyId(R.id.edt);
edt.setText("Dipali");
现在,从edittext获取值并在TextView字符串资源中替换。
String strEdtTextValue=edt.getText().toString();
TextView tV=(TextView)findViewById(R.id.txtView)
将textview中的文本设置为xml资源,如
dummy ="嘿%1 $ s,你选择了这个,这意味着等等......"
在资源文件中添加字符串
<string name="dummy">Hey %1$s, you chose this which means blah blah.....</string>
Resources res = getResources();
String dumyText= (res.getString(R.string.dummy),strEdtTextValue);
tv.setText(dumyText);
对你有帮助。