android studio上不兼容的类型

时间:2016-10-27 09:55:39

标签: java android types

enter image description here

您好,这是我的问题:我一直有错误告诉我类型不兼容即使我的" R.id.total_akylux"是XML文件中的数字(十进制),结果以十进制形式给出。我真的不明白为什么我一直有这个错误。如果有人可以帮助我,那就非常有用。谢谢

2 个答案:

答案 0 :(得分:3)

首先:介意QBrutes评论并重新思考你的概念。

您正在尝试为int分配一个double,这正是错误告诉您的内容。现在你使用的int甚至不是你的号码,而是资源的ID。如果您确实想在资源中存储int,请遵循以下答案:https://stackoverflow.com/a/19297523/2694254

关于您的错误
如果没有手动转换,则不能将double赋值为int。 如果你对int / double cast东西感到困惑:

int numberInt = 1;
double numberDouble = 1.8;

//what you are trying to do:
numberInt = numberDouble;

//what you could do:
numberInt = (int) numberDouble; //numberInt is now 1

//with rounding:
numberInt = (int) Math.round(numberDouble); //numberInt is now 2

此外,您可以在xml中存储浮点数而不是int:https://stackoverflow.com/a/20120240/2694254

您也可以将double存储为String,但这需要更多的转换。

答案 1 :(得分:0)

首先,我要感谢您花时间回答我,即使我对这门语言不熟悉。我理解你对我说的话,所以我开始改变我的代码

double prix = 15.90;
double m2 = (longueur_akylux*largeur_akylux)/100;
double total = prix*m2* quantite;


@Override

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.akylux);
}

@SuppressWarnings("unused")
public void calcul_akylux(View v){
    TextView t = (TextView) findViewById(R.id.total_akylux);
    t.setText(total);
}

那么,如果我在XML中创建一个数字(十进制),它不会等待一个双倍?我怎么能这样这个数字是小数?

谢谢