首先让我告诉你,我是初学者......大约一周前我开始尝试开发应用程序。 当我在真实设备上启动我的应用程序时,它会正常启动但是当我点击按钮时#34; oneplus"它说应用程序没有响应...... 这个应用程序在TextView中为数字添加了一个数字。早期我遇到了同样的问题,并认为这是因为片段。所以我删除了它们并制作了一个非常简单的应用程序但仍然问题仍然存在
activity_main.xml中
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="80dp"
android:text="0"
android:id="@+id/num"
android:textSize="70sp"
/>
<Button
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_marginTop="100dp"
android:text=" + 1 "
android:textSize="50sp"
android:id="@+id/plusone"
android:onClick="onClick"
/>
</RelativeLayout>`
mainactivity.java
package com.example.tjain.oneup;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onClick(View v) {
final TextView number = (TextView) findViewById(R.id.num);
int original = Integer.parseInt(number.getText().toString());
int newnum = original + 1;
number.setText(newnum);
}
}
我也在其他应用中遇到此错误。也许我在重复我的错误。请指出。提前致谢
答案 0 :(得分:1)
我怀疑onClick
中的两个场景是否有例外
首先,
try
{
int original = Integer.parseInt(number.getText().toString());
}catch(Exception ex)
{
ex.printStacktrace();
}
第二,
因为int不是TextView的setText
的参数(仅当它不是String资源ID的一部分时),因为它会发现资源ID不接受String值。和明显的资源未找到异常
您必须将int
转换为String
,
number.setText(String.valueOf(newnum));
答案 1 :(得分:0)
我建议您在活动的类级别添加UI元素,这样您就拥有一个TextView对象和一个Button对象,这样您只需要搜索一次资源,就可以添加一个点击监听器按钮本身就像这样:
public class MainActivity extends Activity{
private TextView mNumberTextView;
private Button mOnePlusButton;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mNumberTextView = findViewbyId(R.id.num);
mOnePlusButton = findViewbyId(R.id.plusone);
mOnePlusButton.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
int original = Integer.parseInt(mNumberTextView.getText().toString());
mNumberTextView.setText(original + 1);
}
});
}
}
编辑:由于您仍然对此感到陌生,因此查看documentation始终是个好主意。
答案 2 :(得分:-1)
你应该使用
number.setText(+newnum);
代替
number.setText(newnum);