【发布时间】:2016-11-14 04:21:40
【问题描述】:
我的应用程序有一个用户可以输入端口号的输入,我出于好奇尝试输入超过 9 位数字(例如:1234567890),应用程序将崩溃。如何防止它崩溃?
编辑 我正在为 Android 使用 Java 语言
编码
public class addActivity extends Activity{
EditText savedName,savedIP,savedPort,savedUserID,savedUserPass,savedChannel;
Button btnSave;
Button btnBack;
String addressList;
FileOutputStream outputStream;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
savedName = (EditText)findViewById(R.id.editName);
savedIP = (EditText)findViewById(R.id.editIP);
savedPort = (EditText)findViewById(R.id.editPort);
savedUserID = (EditText)findViewById(R.id.userID);
savedUserPass = (EditText)findViewById(R.id.userPass);
savedChannel = (EditText)findViewById(R.id.editChannel);
btnSave = (Button)findViewById(R.id.btnSave);
btnBack = (Button)findViewById(R.id.btnBack);
try{
String channelNumString = savedChannel.getText().toString();
int channelNum = Integer.parseInt(String.valueOf(channelNumString));
addressList = savedName.getText().toString();
outputStream = openFileOutput(addressList, Context.MODE_PRIVATE);
//outputStream.write(savedName.getText().toString().getBytes());
outputStream.write("4-".getBytes());
outputStream.write(savedIP.getText().toString().getBytes());
outputStream.write(":".getBytes());
outputStream.write(savedPort.getText().toString().getBytes());
outputStream.write("/user=".getBytes());
outputStream.write(savedUserID.getText().toString().getBytes());
outputStream.write("&password=".getBytes());
outputStream.write(savedUserPass.getText().toString().getBytes());
outputStream.write(System.getProperty("line.separator").getBytes());
outputStream.close();
Toast.makeText(getBaseContext(), "Address Saved !", Toast.LENGTH_SHORT).show();
savedName.setText("");
savedIP.setText("");
savedPort.setText("");
savedUserID.setText("");
savedUserPass.setText("");
savedChannel.setText("");
else{
Toast.makeText(getBaseContext(),"Apps does not support " + channelNumString + " channels",Toast.LENGTH_LONG).show();
}
}catch (Exception e){
e.printStackTrace();
}
布局
<EditText
android:layout_width="350dp"
android:layout_height="wrap_content"
android:id="@+id/editChannel"
android:background="@android:drawable/edit_text"
android:maxLines="1"
android:layout_gravity="center_horizontal"
android:inputType="number"
android:digits="0123456789."/>
这是我遇到问题的部分
【问题讨论】:
-
您使用哪种语言?你的崩溃代码是什么?
-
问:
How do I prevent it from crashing?答:不要输入超过 10 个数字。我的意思是说真的,你怎么能期望得到比你提供的信息更好的答案呢? -
根据您过去的问题,我假设这是 Java。您将需要进行一些输入验证,或者使用
try块。没有代码,谁知道呢。 -
@John3136,我知道答案很明显,但是当出现这样的错误时,即使人们不应该输入更多内容,也会让我很恼火
-
@4castle,是的,我正在使用 Java,对于没有在我的问题中说明这一点,我深表歉意