作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将列表从一个 Activity 传递到另一个 Activity 。正如我通过日志检查的那样,在 FindAllPairsEasyActivity 中,它将 player_points 放入列表中,但我无法在 ProgressActivity 中读取它。
我想要的是显示一组点作为ListView,因为游戏很少。
FindAllPairsEasyActivity.java(只有两个方法):
public class FindAllPairsEasyActivity extends AppCompatActivity {
ArrayList<Integer> findAllPairsList = new ArrayList<>();
...
public void saveScore() {
//Log.i("info","saveScore w find all pairs easy");
SharedPreferences preferences = this.getSharedPreferences(usernameView.getText().toString(), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
int totalScore = preferences.getInt("totalScore",0);
totalScore = totalScore + player_points;
editor.putInt("rts_score",player_points);
findAllPairsList.add(player_points);
//Log.i("d","FindAllPairsEasy findAllPairsList: " + findAllPairsList);
editor.putInt("total_score",totalScore);
editor.commit();
}
public ArrayList<Integer> getList() {
return findAllPairsList;
}
ProgressActivity.java:
public class ProgressActivity extends AppCompatActivity {
public ListView list;
TextView usernameView, myProgressView, totalScoreView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_progress);
totalScoreView = findViewById(R.id.totalScoreView);
myProgressView = findViewById(R.id.myProgressView);
//List <Integer> findAllPairsList = findAllPairsEasyActivity.getList();
AssetManager am = getApplicationContext().getAssets();
Typeface logoFont = Typeface.createFromAsset(am, String.format(Locale.ENGLISH, "fonts/%s","FjallaOne-Regular.ttf"));
Typeface myProgressFont = Typeface.createFromAsset(am, String.format(Locale.ENGLISH, "fonts/%s","Montserrat-Regular.ttf"));
myProgressView.setTypeface(logoFont);
myProgressView.setText("My Progress");
list = findViewById(R.id.listView1);
String user = getIntent().getStringExtra("username");
usernameView = findViewById(R.id.username_progress);
usernameView.setVisibility(View.INVISIBLE);
usernameView.setText("" + user);
//ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.activity_progress,R.id.listView1,cars);
SharedPreferences preferences = this.getSharedPreferences(usernameView.getText().toString(), Context.MODE_PRIVATE);
int rts_score = preferences.getInt("rts_score",0);
int mc_score = preferences.getInt("mc_score",0);
int g_score = preferences.getInt("g_score",0);
int ftt_score = preferences.getInt("ftt_score",0);
int total_score = rts_score + mc_score + g_score + ftt_score;
FindAllPairsEasyActivity findAllPairsEasyActivity = new FindAllPairsEasyActivity();
list.setAdapter(new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,findAllPairsEasyActivity.getList()));
Log.i("list","findAllPairsList content: " + findAllPairsEasyActivity.getList().size());
totalScoreView.setTypeface(logoFont);
totalScoreView.setText("Total score: " + total_score);
}
}
提前谢谢您!
最佳答案
如果动机只是发送数据,是否真的有必要将数据保存在 SharedPreference
中?
为什么不直接使用 putExtra
发送数据并使用 getSerializedExtra
获取数据?
Activity FindAllPairsEasyActivity:
ArrayList<Integer> findAllPairsList = new ArrayList<Integer>();
intent.putExtra("my_list", findAllPairsList);
startActivity(intent);
Activity 进度 Activity :
ArrayList<Integer> findAllPairsList = getIntent().getSerializableExtra("my_list");
关于java - 如何将List的内容传递给另一个Android Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59575500/
我是一名优秀的程序员,十分优秀!