解析xml文件动态加载用户界面
来源:互联网 发布:mysql入门很简单 视频 编辑:程序博客网 时间:2024/06/06 07:40
package com.example.dynamic;
import java.io.InputStream;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
public class DynamicActivity extends Activity {
LinearLayout layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
layout = new LinearLayout(this);
Button button = new Button(this);
button.setText("按钮");
button.setTextColor(Color.RED);
button.setBackgroundResource(R.drawable.ic_launcher);
button.setLayoutParams(new LayoutParams(100,
android.view.ViewGroup.LayoutParams.WRAP_CONTENT));
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TextView textView = new TextView(DynamicActivity.this);
// textView.setText("点击了按钮");
// layout.addView(textView);
new Thread(new Runnable() {
@Override
public void run() {
try {
// 得到輸入流
InputStream is = getAssets().open("tv_main.xml");
// 解析Xml文件
try {
XmlPullParserFactory xl = XmlPullParserFactory
.newInstance();
XmlPullParser xpp = xl.newPullParser();
xpp.setInput(is, "UTF-8");
// 得到下一个事件
// int eventType = xpp.next();
int eventType;
// 得到当前的事件
eventType = xpp.getEventType();
System.out.println("eventType" + eventType);
System.out.println(" XmlPullParser.START_TAG"
+ XmlPullParser.START_TAG);
StringBuffer sb = new StringBuffer();
// todo
// 循环事件
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_TAG: {
// System.out.println("sssss");
String tag = xpp.getName();
if (tag.equalsIgnoreCase("LinearLayout")) {
// xpp.getAttributeValue(0);
if (xpp.getDepth() == 0) {
LinearLayout linearLayoutMain = new LinearLayout(
DynamicActivity.this);
} else if (xpp.getDepth() == 1) {
} else if (xpp.getDepth() == 3) {
} else {
}
} else if (tag
.equalsIgnoreCase("ScrollView")) {
} else if (tag
.equalsIgnoreCase("RelativeLayout")) {
} else if (tag
.equalsIgnoreCase("Button")) {
// Button button2=new Button(this);
}
break;
}
case XmlPullParser.TEXT: {
Log.v("Text:", xpp.getText() + "TEXT");
break;
}
default: {
System.out.println("default");
}
}
// 获取下一个事件
eventType = xpp.next();
}
} catch (XmlPullParserException e) {
e.printStackTrace();
}
// Properties properties=new Properties();
// properties.load(is);
// Set<String> set =
// properties.stringPropertyNames();
// Iterator<String> it = set.iterator();
// String yu = (String)
// properties.get("LinearLayout");
// System.out.println(""+yu);
// Set<Object> set1 = properties.keySet();
// Iterator<Object> it1 = set1.iterator();
// while(it.hasNext()){
// Log.v("Set", it.next());
// }
// while(it1.hasNext()){
// Log.v("Set1", ""+it1.next());
// }
// 配置文件
// Log.v("oncreate",
// "LinearLayout"+properties.get("LinearLayout"));
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
});
// layout.addView(button);
// setContentView(layout);
// getResources().getXml(R.id.action_settings);
}
}
未解决,提供思路
import java.io.InputStream;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
public class DynamicActivity extends Activity {
LinearLayout layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
layout = new LinearLayout(this);
Button button = new Button(this);
button.setText("按钮");
button.setTextColor(Color.RED);
button.setBackgroundResource(R.drawable.ic_launcher);
button.setLayoutParams(new LayoutParams(100,
android.view.ViewGroup.LayoutParams.WRAP_CONTENT));
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TextView textView = new TextView(DynamicActivity.this);
// textView.setText("点击了按钮");
// layout.addView(textView);
new Thread(new Runnable() {
@Override
public void run() {
try {
// 得到輸入流
InputStream is = getAssets().open("tv_main.xml");
// 解析Xml文件
try {
XmlPullParserFactory xl = XmlPullParserFactory
.newInstance();
XmlPullParser xpp = xl.newPullParser();
xpp.setInput(is, "UTF-8");
// 得到下一个事件
// int eventType = xpp.next();
int eventType;
// 得到当前的事件
eventType = xpp.getEventType();
System.out.println("eventType" + eventType);
System.out.println(" XmlPullParser.START_TAG"
+ XmlPullParser.START_TAG);
StringBuffer sb = new StringBuffer();
// todo
// 循环事件
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_TAG: {
// System.out.println("sssss");
String tag = xpp.getName();
if (tag.equalsIgnoreCase("LinearLayout")) {
// xpp.getAttributeValue(0);
if (xpp.getDepth() == 0) {
LinearLayout linearLayoutMain = new LinearLayout(
DynamicActivity.this);
} else if (xpp.getDepth() == 1) {
} else if (xpp.getDepth() == 3) {
} else {
}
} else if (tag
.equalsIgnoreCase("ScrollView")) {
} else if (tag
.equalsIgnoreCase("RelativeLayout")) {
} else if (tag
.equalsIgnoreCase("Button")) {
// Button button2=new Button(this);
}
break;
}
case XmlPullParser.TEXT: {
Log.v("Text:", xpp.getText() + "TEXT");
break;
}
default: {
System.out.println("default");
}
}
// 获取下一个事件
eventType = xpp.next();
}
} catch (XmlPullParserException e) {
e.printStackTrace();
}
// Properties properties=new Properties();
// properties.load(is);
// Set<String> set =
// properties.stringPropertyNames();
// Iterator<String> it = set.iterator();
// String yu = (String)
// properties.get("LinearLayout");
// System.out.println(""+yu);
// Set<Object> set1 = properties.keySet();
// Iterator<Object> it1 = set1.iterator();
// while(it.hasNext()){
// Log.v("Set", it.next());
// }
// while(it1.hasNext()){
// Log.v("Set1", ""+it1.next());
// }
// 配置文件
// Log.v("oncreate",
// "LinearLayout"+properties.get("LinearLayout"));
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
});
// layout.addView(button);
// setContentView(layout);
// getResources().getXml(R.id.action_settings);
}
}
- 解析xml文件动态加载用户界面
- 动态加载xml文件
- android sax解析xml 文件 动态加载标题
- 加载并解析 XML 文件
- javascript加载解析xml文件
- 加载并解析 XML 文件
- java加载XML文件并解析xml
- android 加载,解析xml文件源码解析
- js中加载并解析xml文件, 动态添加标签,控件
- js中加载并解析xml文件, 动态添加标签,控件
- 动态加载xml文件(站点地图)
- 动态加载spring的xml文件
- Ajax动态加载xml文件内容
- 使用 Android 和 XML 构建动态用户界面
- MyBatis(三) xml文件解析流程 动态SQL解析
- jQuery解析XML文件同时动态增加js文件
- js读取xml文件,动态加载成表格
- android动态加载sd卡的xml布局文件
- paip.快速查找定位文件VS2010
- [HTML5-Canvas] 关于HTML 5 canvas 的基础教程
- 模型设计与实践---(六)重叠IO,事件通知(Overlap Event)
- 安防-数据挖掘
- 手贱-写shm玩玩
- 解析xml文件动态加载用户界面
- HDU 2112 HDU Today
- 使用LRU算法缓存图片
- Caused by: java.lang.ClassCastException: android.widget.TextView修复
- LVS集群的负载调度
- ContentResolver
- MFC静态链接库、动态链接库的联系与区别
- Objective C与Java之间的DES加解密实现
- 模型设计与实践---(七)重叠IO ,完成例程