Android 如何让TextView或EditText显示变量

Android 如何让TextView或EditText显示变量,android,Android,我试图在文本视图或编辑文本上显示计算结果。我从100磅和10磅中获取用户输入,然后将其相加,并尝试在totalPounds上显示。这不是我要用的方程式,只是想看看它是否有效。当前,我的应用程序崩溃,代码如下。这都在一个活动下进行。另外,当我更改EditText的ID时,EditText的位置在我的相对布局上如何更改?请不要链接,我知道这很简单,但我是一个傻瓜。我已经搜索过了,很难找到解决方案 public void onCreate(Bundle savedInstanceState) {

我试图在
文本视图
编辑文本
上显示计算结果。我从100磅和10磅中获取用户输入,然后将其相加,并尝试在totalPounds上显示。这不是我要用的方程式,只是想看看它是否有效。当前,我的应用程序崩溃,代码如下。这都在一个
活动下进行。另外,当我更改
EditText
的ID时,
EditText
的位置在我的
相对布局上如何更改?请不要链接,我知道这很简单,但我是一个傻瓜。我已经搜索过了,很难找到解决方案

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.pounds);
    addListenerOnSpinnerItemSelection();

    EditText one100lbs = (EditText) findViewById(R.id.one100lbs);
    int one = Integer.valueOf(one100lbs.getText().toString());

    EditText tenPounds = (EditText) findViewById(R.id.tenPounds);
    int two = Integer.valueOf(tenPounds.getText().toString());

    int result = one + two;

    TextView textView = (TextView) findViewById(R.id.totalPounds);
    textView.setText(result);   
}

你想要的是:

textView.setText(String.valueOf(result));
int one = 0;
int two = 0;

try{
  EditText one100lbs = (EditText) findViewById(R.id.one100lbs);
  one = Integer.valueOf(one100lbs.getText().toString().trim());
}
catch (NumberFormatException e)
{
  one = -1;
}

try{
  EditText tenPounds = (EditText) findViewById(R.id.tenPounds);
  two = Integer.valueOf(tenPounds.getText().toString().trim()); 
}
catch (NumberFormatException e)
{
  two = -1;
}

int result = one + two;

TextView textView = (TextView) findViewById(R.id.totalPounds);
textView.setText(String.valueOf(result)); 
目前,当您只提供一个int时,Android正试图找到一个资源id,这将失败

我还想到,您使用的是EditText,它因输入数字失败而臭名昭著,此外,您还可以执行以下操作:

textView.setText(String.valueOf(result));
int one = 0;
int two = 0;

try{
  EditText one100lbs = (EditText) findViewById(R.id.one100lbs);
  one = Integer.valueOf(one100lbs.getText().toString().trim());
}
catch (NumberFormatException e)
{
  one = -1;
}

try{
  EditText tenPounds = (EditText) findViewById(R.id.tenPounds);
  two = Integer.valueOf(tenPounds.getText().toString().trim()); 
}
catch (NumberFormatException e)
{
  two = -1;
}

int result = one + two;

TextView textView = (TextView) findViewById(R.id.totalPounds);
textView.setText(String.valueOf(result)); 

你想要的是:

textView.setText(String.valueOf(result));
int one = 0;
int two = 0;

try{
  EditText one100lbs = (EditText) findViewById(R.id.one100lbs);
  one = Integer.valueOf(one100lbs.getText().toString().trim());
}
catch (NumberFormatException e)
{
  one = -1;
}

try{
  EditText tenPounds = (EditText) findViewById(R.id.tenPounds);
  two = Integer.valueOf(tenPounds.getText().toString().trim()); 
}
catch (NumberFormatException e)
{
  two = -1;
}

int result = one + two;

TextView textView = (TextView) findViewById(R.id.totalPounds);
textView.setText(String.valueOf(result)); 
目前,当您只提供一个int时,Android正试图找到一个资源id,这将失败

我还想到,您使用的是EditText,它因输入数字失败而臭名昭著,此外,您还可以执行以下操作:

textView.setText(String.valueOf(result));
int one = 0;
int two = 0;

try{
  EditText one100lbs = (EditText) findViewById(R.id.one100lbs);
  one = Integer.valueOf(one100lbs.getText().toString().trim());
}
catch (NumberFormatException e)
{
  one = -1;
}

try{
  EditText tenPounds = (EditText) findViewById(R.id.tenPounds);
  two = Integer.valueOf(tenPounds.getText().toString().trim()); 
}
catch (NumberFormatException e)
{
  two = -1;
}

int result = one + two;

TextView textView = (TextView) findViewById(R.id.totalPounds);
textView.setText(String.valueOf(result)); 

您可以使用以下任一选项:

textView.setText(Integer.toString(result));


您可以使用以下任一选项:

textView.setText(Integer.toString(result));


首先,ID与布局无关。其次,如果您的应用程序崩溃,请首先提供由crash.ID生成的(红色)LogCat日志与布局无关。其次,如果您的应用程序崩溃,请提供崩溃产生的(红色)LogCat日志。或者您可以使用更简洁(并且经常使用)的
textView.setText(result+)
但是想法还是一样,把它转换成一个字符串,你应该会很好。@zyklonSport我看到
String.valueOf()
+“
更受推荐,所以我已经相应地进行了调整。我想我会检查一下,社区似乎和你在一起+感谢您的快速回复。当我使用以上两个代码时,它不喜欢“textView”,并且有一条红色的取消删除线,其中引用“textView无法解析”。textView应该是我的结果textView的ID吗?如果是,则仍然输入ID名称,并且仍然有红色下划线。如何让java识别该ID名称?@user1978756您是第一次做
TextView TextView=(TextView)findViewById(R.ID.totalPounds)然后添加我的行
textView
(小写t)是保存
textView
(大写t)对象的变量。如果您尚未导入
TextView
类,请导入
android.widget.TextView
。或者您可以使用更简洁(且常用)的
TextView.setText(结果+”)
但是想法还是一样,把它转换成一个字符串,你应该会很好。@zyklonSport我看到
String.valueOf()
+“
更受推荐,所以我已经相应地进行了调整。我想我会检查一下,社区似乎和你在一起+感谢您的快速回复。当我使用以上两个代码时,它不喜欢“textView”,并且有一条红色的取消删除线,其中引用“textView无法解析”。textView应该是我的结果textView的ID吗?如果是,则仍然输入ID名称,并且仍然有红色下划线。如何让java识别该ID名称?@user1978756您是第一次做
TextView TextView=(TextView)findViewById(R.ID.totalPounds)然后添加我的行
textView
(小写t)是保存
textView
(大写t)对象的变量。如果尚未导入
TextView
类,请导入
android.widget.TextView