是否可以一次预览Eclipse中的所有Android XML布局文件?预览Eclipse中的所有Android XML布局文件
(我不认为预览在不同的屏幕分辨率,主题或API一个单一的布局!)
我有很多类似的对话,有时我需要预览所有的布局,以找到一个我需要的。
是否可以一次预览Eclipse中的所有Android XML布局文件?预览Eclipse中的所有Android XML布局文件
(我不认为预览在不同的屏幕分辨率,主题或API一个单一的布局!)
我有很多类似的对话,有时我需要预览所有的布局,以找到一个我需要的。
无法在1个窗口中一次显示全部。但是你可以同时打开多个文件。
可能有多个文件彼此相邻,但也可以作为浮动窗口。
像:
下面是一个自包含的活动:
请求:
将是巨大的,如果有人能提出一个方法来添加布局名编程方式出现在视图更新后的布局。
public class MainActivity extends Activity
{
List<Integer> layoutIds = new ArrayList<Integer>();
Map<Integer, String> layoutNameMap = new HashMap<Integer, String>();
int curIdx = 0;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
loadLayoutIds();
showNext();
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
if (event.getAction() == MotionEvent.ACTION_DOWN)
showNext();
return true;
}
private void showNext()
{
if (curIdx >= layoutIds.size())
curIdx = 0;
int layoutId = (int) layoutIds.get(curIdx);
setContentView(layoutId);
String msg = layoutNameMap.get(layoutId);
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
curIdx++;
}
private void loadLayoutIds()
{
try
{
Class<?> c = R.layout.class;
Field[] fields = c.getDeclaredFields();
for (Field field : fields)
{
Class<?> t = field.getType();
if(t == int.class)
{
int layoutId = field.getInt(null);
String name = field.getName();
// Because /layout folder can have different layout files,
// use some prefix to indicate which files are at the "activity level"
// This way the following IF controls which layout files make it in
if (! name.startsWith("activity_"))
continue;
Log.d("tag", "cur field = " + name + ", cur layoutId = " + layoutId);
layoutIds.add(layoutId);
layoutNameMap.put(layoutId, name);
}
}
}
catch (Exception e)
{}
}
}
(根据需要添加进口,改性剂,异常处理等)
您应该为每个布局给出适当的名称,以便您可以通过其名称来识别它们。 – joao2fast4u 2014-11-05 14:22:05