Jan*_*smi 15 xml arrays resources android
我是Android开发的新手,面临管理Android资源的问题.我想用ImageView和TextView创建一个listView.
以下是我的实现工作正常,但实际上我想使用我之前创建的数组,如下所示:
int[] img = getResources().getIntArray(R.Array.img);
Run Code Online (Sandbox Code Playgroud)
package com.simplelistviewwithlistactivity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.ListView;
public class ListActivityS extends ListActivity {
int[] img = { R.drawable.r1, R.drawable.r2, R.drawable.skycubemap1,
R.drawable.skycubemap1, R.drawable.skycubemap2,
R.drawable.skycubemap3, R.drawable.skycubemap4,
R.drawable.skycubemap5 };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getListView().setDividerHeight(2);
getListView().setAdapter(new BindDataAdapter(this, img, item));
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Builder builder = new AlertDialog.Builder(this);
builder.setMessage(item[position] + " is clicked.");
builder.setPositiveButton("OK", null);
builder.show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_list, menu);
return true;
}
private String item[] = { "This is list Item1", "This is list Item2",
"This is list Item3", "This is list Item4", "This is list Item5",
"This is list Item6", "This is list Item8", "This is list Item8"
Run Code Online (Sandbox Code Playgroud)
Fra*_*gle 34
创建如下所示的XML并将其放在res/values/arrays.xml中
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="icons">
<item>@drawable/home</item>
<item>@drawable/settings</item>
<item>@drawable/logout</item>
</array>
<array name="colors">
<item>#FFFF0000</item>
<item>#FF00FF00</item>
<item>#FF0000FF</item>
</array>
</resources>
Run Code Online (Sandbox Code Playgroud)
然后使用这样的代码:
Resources res = getResources();
TypedArray icons = res.obtainTypedArray(R.array.icons);
Drawable drawable = icons.getDrawable(0);
TypedArray colors = res.obtainTypedArray(R.array.colors);
int color = colors.getColor(0,0);
Run Code Online (Sandbox Code Playgroud)
资料来源:http://developer.android.com/guide/topics/resources/more-resources.html
您可以使用中的资源res/values/arrays.xml。
对于绘画
<integer-array name="your_images">
<item>@drawable/ic_active_image</item>
<item>@drawable/ic_visited_image</item>
</integer-array>
val drawables = resources.obtainTypedArray(R.array.your_images)
val drawable = drawables.getResourceId(position, -1)
image.setImageResource(drawable)
drawables.recycle()
Run Code Online (Sandbox Code Playgroud)
对于颜色
<array name="your_colors">
<item>#365374</item>
<item>#00B9FF</item>
</array>
val colors = resources.obtainTypedArray(R.array.your_colors)
val color = colors.getColor(position, -1)
title.setTextColor(color)
colors.recycle()
Run Code Online (Sandbox Code Playgroud)
对于字符串
<string-array name="your_strings">
<item>Active</item>
<item>Visited</item>
</string-array>
val strings = resources.getStringArray(R.array.your_strings)
title.text = strings[position]
Run Code Online (Sandbox Code Playgroud)
复数:
<plurals name="proposal_plurals">
<item quantity="zero">No proposals</item>
<item quantity="one">%1$d proposal</item>
<item quantity="two">%1$d proposals</item>
<item quantity="few">%1$d proposals</item>
<item quantity="many">%1$d proposals</item>
<item quantity="other">%1$d proposals</item>
</plurals>
val proposals = count.takeIf { it != 0 }?.let {
resources.getQuantityString(R.plurals.proposal_plurals, it, it)
} ?: "No proposals available"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29483 次 |
| 最近记录: |