我是android开发的新手,我正在尝试显示一些小图像(小国家标志),每个图像旁边都有一些描述文字。 我正在做的是创建一个异步作业,连接到Internet检索我需要的信息并填充类中的一些变量,最后它返回此类的对象。 函数onPostExecute
protected void onPostExecute(String result) {
System.out.println(xmlData.getCurrency("USD"));
try {
activReg.getResult(xmlData);
} catch (Exception e) {
// TODO: handle exception
System.out.println("MESSAGE GET RESULT"+e.getMessage());
}
}
MainActivity中的函数getResult类似于
public void getResult(Currency xmlObj){
LinearLayout right = new LinearLayout(this);
Resources resource = getResources();
ImageView imgUsd = (ImageView) this.findViewById(R.id.usd);
final Drawable drawable = imgUsd.getDrawable();
TextView res = new TextView(this);
imgUsd.setImageDrawable(drawable);
res.setText("EUR=>USD: "+Double.toString(xmlObj.getCurrency("USD")));
//res.setText("EUR=>GBP: "+Double.toString(xmlObj.getCurrency("GBP")));
setContentView(res);
}
现在,你可以看到我搞砸了一切,尝试了许多无论如何都没有用的东西。所以我想要实现的是拥有一个xmlObj.getCurrency("USD")
,xmlObj.getCurrency("GBP")
等列表,旁边有一个小标记图像。当然,如果我使用setText不止一个,最后一个会覆盖前一个,这就把我带到了两个问题:
为了您的信息,布局为LinearLayout
,我也试图以这种方式包含图片:
<ImageView
android:id="@+id/usd"
android:layout_width="59dp"
android:layout_height="40dp"
android:layout_gravity="fill_vertical"
android:src="@drawable/usd" />
xml中的。
答案 0 :(得分:0)
如果您有多个带描述的图像,则可以使用列表视图。 您可以关注ListView tutorial
答案 1 :(得分:0)
您的代码是: -
protected void onPostExecute(String result) {
System.out.println(xmlData.getCurrency("USD"));
try {
activReg.getResult(xmlData);
} catch (Exception e) {
// TODO: handle exception
System.out.println("MESSAGE GET RESULT"+e.getMessage());
}
}
您是一个一个地加载xmlObj还是一起加载所有xmlObj?
您可以使用listview创建一个xml。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:divider="@android:color/transparent"
android:dividerHeight="10dp"
android:scrollbars="none" >
</ListView>
</RelativeLayout>
稍后在你的getResult方法中写下
View view = LayoutInflater.from(context).inflate(R.layout.list_view, parent, false);
setContentView(view);
ArrayList<YourModel> arrayList = new ArrayList<YourModel>();
for(int i = 0 ; i < xmlObj[].length; i++){
YourModel model = new YourModel;
model.setUsd(Double.toString(xmlObj.getCurrency("USD"));
model.setImageUrl(xmlObj.getString("Url"));
arrayList.add(model);
}
CustomArrayAdapter arrayAdapter = new CustomArrayAdapter(context,R.id.list_item,arrayList);
ListView view = (ListView) view.findViewById(R.id.listView);
view.setadapter(arrayAdapter);
YourModel将是一个单独的java类,它将具有图像URL和文本描述 这将有吸气剂和制定者。
R.id.list_item : - 您需要创建另一个xml来创建列表行,这将使imageView和textview水平对齐。
customArrayAdapter将是自定义适配器,您可以在其中找到教程。
如果仍然怀疑你可以随时问......:)