从OnClickListener重新加载或刷新活动不起作用

时间:2013-01-11 05:11:54

标签: android android-activity

在我的“ArticleActivity”(用户阅读文章)中,我有一个“相关文章”列表。当用户点击一个时,它应该重新加载或刷新ArticleActivity以显示他们点击的文章,而不是他们刚刚阅读的文章。

我在网上找到了很多答案,并且已经尝试了大约492个......我可以让它开始一个不同的活动,但是我无法让它重新启动当前的活动。

我的最新尝试:

    //RELATED ARTICLE CLICK
    relatedArticleClickListener = new OnClickListener()
    {
        public void onClick(View v) {
            Log.d("MYLOG", "related article clicked " + v.getId());
            Intent myIntent = new Intent(v.getContext(), ArticleActivity.class);
            myIntent.putExtra("id", v.getId());
            startActivity(myIntent);
            finish();
        }   
    };

更新

可以与ArticleActivity有关:android:launchMode="singleTask"吗?我需要它,但也需要能够用新文章重新加载活动。

如果我将ArticleActivity.class更改为MainActivity.class并将所有其余代码保持完全相同,则会转到MainActivity。

3 个答案:

答案 0 :(得分:1)

替换这些行

finish();
startActivity(myIntent);

与这些

startActivity(myIntent);
finish();

答案 1 :(得分:0)

答案 2 :(得分:0)

阅读更新后,进一步了解您的问题。该行为与您的singleTask指定有关。在singleTask下,如果活动已存在,则不会重新创建,而是调用其onNewIntent()方法来处理新意图。有关详细信息,请参阅Activity.launchmode

你真的需要singleTask吗?因为删除它也会导致你的问题消失。它还允许您的阅读文章位于后台堆栈中,因此当您的用户完成一篇文章并按下后退键时,它会将它们带回第一篇文章。