我正在使用android studio制作我的第一个Android应用程序 . 在这个APP我有一个列表视图有12个类(12项) . 单击一个类后,它将进入带有此类的10个项目的选项卡式活动 . 在每个标签页上,我都有一个评级栏,让人们评价该项目 .
我为listview设置了一个活动,为这12个标签活动设置了12个独立活动 . listview到每个选项卡式活动的代码如下:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
if(i==0){
Intent intent = new Intent(ListViewActivity.this, TabbedActivity1.class);
intent.putExtra("styleName", STYLE_NAMES[i]);
intent.putExtra("styleExample",STYLE_EXAMPLES[i]);
startActivity(intent);
}
else if(i==1){
Intent intent = new Intent(ListViewActivity.this, TabbedActivity2.class);
intent.putExtra("styleName", STYLE_NAMES[i]);
intent.putExtra("styleExample",STYLE_EXAMPLES[i]);
startActivity(intent);
}
...... // skip the other 10 tabbed activities.
}
现在的问题是:在我对选项卡式活动进行评级后,我返回到ListView活动并再次点击进入每个选项卡式活动,评级已经消失 .
我想原因是在我的代码中,每次单击该项时它都会打开一个新的选项卡式活动,尽管布局相同,但内容不会保存 .
所以我想知道我是否应该对ListView活动做些什么来保存评级 . 我搜索了相关的问题,但我发现在他们的场景中,每个列表项只是一个简单的评级栏 . 但在这里,我的列表项是带有10个ratingbars的标签式活动 .
因此,我不知道该怎么做 . 我没有android studio的经验,所以我不知道从哪里开始解决这个问题 . 任何想法都表示赞赏!非常感谢提前!!
1 回答
首先,如果您的所有标签活动都相似,您可以创建一个活动,而不是在您的案例12中创建一个活动,并通过意图传递特定内容和状态 .
您的问题的基本方法是主活动中的商店评级状态,以及每次单击列表项时打开选项卡活动时,都会按意图发送相关活动的比率 . 然后在标签活动中使用它更新费率 .
要实现这一点,我们将使用
startActivityForResult
而不是startActivity
,因为我们需要tab活动来返回评级栏的最后状态 .您可以在此处看到如下所示的基本示例: