字符串资源是int?

时间:2014-03-16 19:15:57

标签: android string int

Eclipse告诉我,我的字符串是一个int?

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(Uri.parse(R.string.get_question_url));
HttpResponse httpresponse = httpclient.execute(httppost);
HttpEntity httpentity = new response.getEntity();
InputStream isr = httpentity.getContent();

第2行:HttpPost httppost = new HttpPost(Uri.parse(R.string.get_question_url)); 我想知道为什么,有人知道帮助吗?

2 个答案:

答案 0 :(得分:2)

R.string.something返回资源的整数标识符,而不是您似乎期望的实际字符串内容。您必须使用getString()才能从其标识符中获取实际的字符串资源。

使用它代替从字符串资源实际构建Uri,而不是从字符串资源的标识符构建:

HttpPost httppost = new HttpPost(Uri.parse(getString(R.string.get_question_url)));

假设您在Context的子类中运行此代码。

否则,请使用:

HttpPost httppost = new HttpPost(Uri.parse(yourContext.getResources().getString(R.string.get_question_url)));

答案 1 :(得分:1)

您项目中的所有资源都由int数字标识,无论它们是什么:Drawables,Layouts,Strings ......所以每当您将资源命名为android:id="@+id/whatever"时,Android内部将其表示为int,您可以通过R.resource.name自动生成的索引进行访问。