Android应用程序中的活动太多。还有别的选择吗?
我正在创建我的第一个应用程序。在这个应用程序中,我有一个包含许多项目的可扩展列表。当我选择这些项目时,我希望显示几个段落。如果我只想显示文本,是否需要为每个项目创建活动?我知道必须有一个更简单的方法。起初我确实是这样创建的,它看起来非常庞大(30多个活动),所以现在我对它进行了设置,以便在选择一个项目时,setContentView会打开相应的布局,其中包含需要显示的文本。这是可行的,但有一个陷阱,每当我点击后退按钮,它就会把我带回我的主要活动类,而不是我的可扩展列表类。我希望用户能够返回并从列表中选择其他内容。任何关于我需要做什么的指导都将不胜感激 我建议为每个要显示的项目创建字符串资源,然后使用TextView创建一个活动。然后,不要为每个活动创建新的意图,而是创建一个指向新活动的意图,并添加一个包含TextView文本的额外意图。例如: 活动1:Android应用程序中的活动太多。还有别的选择吗?,android,Android,我正在创建我的第一个应用程序。在这个应用程序中,我有一个包含许多项目的可扩展列表。当我选择这些项目时,我希望显示几个段落。如果我只想显示文本,是否需要为每个项目创建活动?我知道必须有一个更简单的方法。起初我确实是这样创建的,它看起来非常庞大(30多个活动),所以现在我对它进行了设置,以便在选择一个项目时,setContentView会打开相应的布局,其中包含需要显示的文本。这是可行的,但有一个陷阱,每当我点击后退按钮,它就会把我带回我的主要活动类,而不是我的可扩展列表类。我希望用户能够返回并从列
myButton.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Intent intent = new Intent(this, ParagraphView.class);
intent.putExtra("textData", getResources().getString(R.string.myText));
getBaseContext().startActivity(intent);
}
});
在查看器的onCreate中,添加以下内容以获取TextView:
Intent intent = getIntent();
String textData = intent.getStringExtra("text");
TextView tv = (TextView) findViewById(R.id.myTextView);
tv.setText(textData);
现在,我们需要将文本写入TextView:
Intent intent = getIntent();
String textData = intent.getStringExtra("text");
TextView tv = (TextView) findViewById(R.id.myTextView);
tv.setText(textData);
您所需要做的就是设置字符串资源和按钮单击侦听器。您可能会认为这比有很多活动更容易(这样管理条目当然容易),但确实需要一些设置。
编辑:感谢@ianhanniballake指出了一个更好的方法(我甚至不知道当时我在想什么…)
Edit2:哇,我真的把代码搞乱了。(希望)现在已修复此代码实际上不起作用,你知道吗?您至少需要使用将字符串转换为适当的资源ID。为什么不直接传入R.string.paragraphId(或者如果需要,甚至是getString(R.string.paragraphId))@ianhanniballake关于通过intent传递资源的观点很好。(我想我今晚有点太累了,不能正常思考…)将更新。谢谢你花时间回答我的问题并为我指出正确的方向。我来试试这个。