Android应用中的活动太多。任何替代品?

时间:2014-03-03 01:08:24

标签: android

我正在创建我的第一个应用。在这个应用程序中,我有一个包含许多项目的可扩展列表。当我选择任何这些项目时,我想要显示几个段落。如果文本是我想要显示的唯一内容,是否需要为每个项目创建一个活动?我知道必须有一个更简单的方法。我最初创建它就像这样,它看起来非常笨重(30多个活动),所以现在我设置它,这样当选择一个项目时,setContentView打开相应的布局,其中包含需要显示的文本。这有效,但有一个问题,每当我点击后退按钮时,它会将我带回我的主要活动类,而不是我的可扩展列表类。我希望用户能够返回并从列表中选择其他内容。任何关于我需要做什么的指导将不胜感激。

1 个答案:

答案 0 :(得分:0)

我建议为您要显示的每个项目创建字符串资源,然后使用TextView创建一个活动。然后,不是为每个活动创建新的意图,而是创建一个转到新活动的intent,并添加一个包含TextView文本的额外内容。例如:

活性1:

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:

TextView tv = (TextView) findViewById(R.id.myTextView);
tv.setText(textData);

您只需设置字符串资源和按钮单击侦听器即可。您可能会认为这比进行大量活动更容易(以这种方式管理条目肯定更容易),但需要进行一些设置。

编辑:感谢@ianhanniballake指出一个更好的方式(我甚至不知道我当时的想法......)

Edit2:哇,我真的搞砸了我的代码。 (希望)现在修复