IFFav_1995 2018-03-01 05:05 采纳率: 100%
浏览 1114
已采纳

Activity intent传值,在get方法中为什么只取到了private int 的原始值

问题:在前一个Activity中设置了传值row和column=4或6,经过测试到mainActivity传值成功。当在gameView中取getRow的值时,每次只取到private中的值6,而不取传过的intent中的值。

代码如下:

public class MainActivity extends Activity {
private int row = 6;
private int column= 6;
public MainActivity() {
mainActivity = this;
}

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvscore = findViewById(R.id.tvScore);
Intent intent = this.getIntent();
row = intent.getIntExtra("row", 4);
column = intent.getIntExtra("column", 4);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

public void clearScore() {
score = 0;
showScore();
}

private void showScore() {
// TODO Auto-generated method stub
// if(int s = getMax(CardMap[x][y])){
//
// }
tvscore.setText(score + "");

}

public void addScore(int s) {
score += s;
showScore();
}

private TextView tvscore;
private int score = 0;
public static MainActivity mainActivity = null;

public static MainActivity getMainActivity() {
return mainActivity;
}

public int getColumn() {
return column;
}

public int getRow() {
return row;
}
}

GameView中的部分代码:

private int row, column;
private Cards[][] cardMap = new Cards[10][10];
private ArrayList emptyPoints = new ArrayList<>();

public GameView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
initGame();
}

public void initGame() {
// TODO Auto-generated method stub
row = MainActivity.getMainActivity().getRow();
column = MainActivity.getMainActivity().getColumn();
setColumnCount(column);
setBackgroundColor(getResources().getColor(R.color.grey3));

求大神解答!!!谢谢谢谢!!!

  • 写回答

3条回答 默认 最新

  • greenbill 2018-03-01 06:31
    关注

    你在activity setContentView的时候就会触发gameview initGame方法。这时候row column 还没有被赋值为你传递的值还是默认值6.所以一直拿到都是默认值。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 麒麟V10桌面版SP1如何配置bonding
  • ¥15 Marscode IDE 如何预览新建的 HTML 文件
  • ¥15 K8S部署二进制集群过程中calico一直报错
  • ¥15 java python或者任何一种编程语言复刻一个网页
  • ¥20 如何通过代码传输视频到亚马逊平台
  • ¥15 php查询mysql数据库并显示至下拉列表中
  • ¥15 freertos下使用外部中断失效
  • ¥15 输入的char字符转为int类型,不是对应的ascall码,如何才能使之转换为对应ascall码?或者使输入的char字符可以正常与其他字符比较?
  • ¥15 devserver配置完 启动服务 无法访问static上的资源
  • ¥15 解决websocket跟c#客户端通信