我有两个类“XMLParser”和“MainActivity”。如何通过onListItemClick在MainActivity类下运行“XMLParser”类。在这里,我有两个问题。 (1)如何将String packageName从MainActivity传递给parseXML()方法。 (2)为什么没有出现这个Toast消息。我不知道究竟是什么错误。请给我一些建议。谢谢你的回答。
public class XMlParser extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
parseXML();
}
public void parseXML(){
String input = packageName + ".xml";
.........................
.........................
.........................
String result = something;
Toast.makeText(getBaseContext(), result , Toast.LENGTH_LONG).show();
}
第二类“MainActivity”
public class MainActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
packageManager = getPackageManager();
new LoadApplications().execute();
}
protected void onListItemClick(ListView l, View v, int position, long id) {
ApplicationInfo app = applist.get(position);
String packageName = app.packageName;
Intent intent = new Intent(getApplicationContext(), XMLResult.class);
startActivity(intent);
finish();
}
答案 0 :(得分:0)
如何将String packageName从MainActivity传递给parseXML()方法
第1步:在您为putExtra()
电话创建的Intent
上拨打startActivity()
,传递packageName
和一些密钥
步骤2:在奇怪命名的XMlParser
类' onCreate()
方法,调用getIntent().getStringExtra()
,提供相同的密钥,以获取值
为什么这个Toast消息没有出现。我不知道究竟是什么错误
因为startActivity()
来电是针对Intent
课程的XMLResult
,而不是XMlParser
。
答案 1 :(得分:0)
那它是如何发挥作用的。
假设XMlParser
没有任何用户界面。
//We are treating XMlParser as utility class
public class XMlParser{
private Context mContext;
private String appPackageName;
public XMlParser(Context context, String packageName)
{
this.mContext = context;
this.appPackageName = packageName;
}
public void parseXML(){
String input = appPackageName + ".xml";
.........................
.........................
.........................
String result = something;
Toast.makeText(mContext, result , Toast.LENGTH_LONG).show();
}
}
现在,onListItemClick
只需调用简单的类和方法
protected void onListItemClick(ListView l, View v, int position, long id) {
ApplicationInfo app = applist.get(position);
String packageName = app.packageName;
XMlParser xmlParser = new XMlParser(getApplicationContext(), packageName); // We are passing application context and package name as argument
xmlParser.parseXML();
}
注意:如果使用AsyncTask
执行此解析操作,则更好地进行xml解析。