活动回收......这是可能的吗?

时间:2017-07-27 03:08:36

标签: java android xml

我想为比赛制作一个应用......但我现在卡住了! 我想创建一个类似于字典的应用程序,它有许多屏幕(最多1000个)。 如何在不进行如此多活动的情况下为特定数据制作这么多屏幕?    如果我去做1000活动,会发生什么?

3 个答案:

答案 0 :(得分:0)

如果您的意思是100张图片列表视图,则此链接可能有助于https://www.simplifiedcoding.net/android-feed-example-using-php-mysql-volley/

答案 1 :(得分:0)

您应该修复应用的布局并更改数据(使用适当的数据库),而不是每次都更改屏幕。

答案 2 :(得分:0)

您应该将Activity视为用户在您的应用中执行的操作,而不是屏幕的具体内容。因此,在您的词典应用程序中,您可能只需要两个活动:一个列出所有单词,另一个表示所选单词的定义。

假设您要创建DefinitionActivity来显示单词的定义。您可能已将数据保存在某处,或者可以从互联网上下载,或者其他任何内容。重要的是,您可以通过主要活动将该单词显示在此活动中。你可以这样写:

public class DefinitionActivity extends AppCompatActivity {

    public static final String EXTRA_SELECTED_WORD = "DefinitionActivity.EXTRA_SELECTED_WORD";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.definition_activity);

        String selectedWord = getIntent().getStringExtra(EXTRA_SELECTED_WORD);
        String definition = // load your definition, or pass it to the intent like above

        TextView wordView = (TextView) findViewById(R.id.word);
        wordView.setText(selectedWord);

        TextView definitionView = (TextView) findViewById(R.id.definition);
        definitionView.setText(definition);
    }
}

从主活动开始此活动时,您可以传递选定的单词:

public void launchDefinition(String word) {
    Intent intent = new Intent(MainActivity.this, DefinitionActivity.class);
    intent.putExtra(DefinitionActivity.EXTRA_SELECTED_WORD, word);
    startActivity(intent);
}

现在您有一个活动可以显示任何单词的定义。无需为字典中的每个单词创建单独的活动。