gpt4 book ai didi

java - 不幸的是,<应用程序名称>已停止 "String data = sharedData.getText().toString();"

转载 作者:行者123 更新时间:2023-12-01 13:04:11 25 4
gpt4 key购买 nike

大家早上好!

简单的问题,当按下程序中的“保存”按钮时,我正在使用 Java 中的文件输入/输出将数据保存到字符串中。但每当我点击“保存”按钮时,程序就会停止工作。

我对 Java 和 Android 也很陌生,所以我还不能真正判断问题是针对我的代码还是更普遍的问题,这就是为什么我发布这个问题,即使还有很多其他问题类似。

使用注释“//、/*、/”,我能够在代码中找到导致程序停止工作的行,我通过放置“”来强调这一行在它的开头和结尾,这样你就不会在寻找它时遇到麻烦。我只是想知道为什么这条线导致我的应用程序停止,如果可能的话,如何修复它。

谢谢大家。我们将非常感谢您的帮助。

请看一下我的代码 fragment :

public class MainActivity extends ActionBarActivity {

EditText sharedData;
FileOutputStream fos;
String FILENAME = "InternalString";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity);

Button save = (Button) findViewById(R.id.btn_save);
save.setOnClickListener(onSave);

ListView list = (ListView) findViewById(R.id.restaurants);
adapter = new RestaurantAdapter();
list.setAdapter(adapter);
}

public View.OnClickListener onSave = new View.OnClickListener (){


@Override
public void onClick(View v) {

Info r = new Info();

EditText name = (EditText) findViewById(R.id.field_name);
EditText address = (EditText) findViewById(R.id.field_address);
TextView total= (TextView)findViewById(R.id.total);
RadioGroup types = (RadioGroup) findViewById(R.id.rgrp_types);
switch (types.getCheckedRadioButtonId()) {
case R.id.rbtn_sit_down:
r.setType("sit_down");
break;
case R.id.rbtn_take_out:
r.setType("take_out");
break;
}

r.setName(name.getText().toString());
r.setAddress(address.getText().toString());
r.setTotal(total.getText().toString());

String data = sharedData.getText().toString();*** <----- This line causes it to stop running

try {
fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(data.getBytes());
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

String collected = null;
FileInputStream fis = null;

try {
fis = openFileInput(FILENAME);
byte[] dataArray = new byte[fis.available()];
while (fis.read(dataArray) != -1){
collected = new String(dataArray);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
try {
fis.close();
total.setText("Balance Total: " + collected +"Php");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Log.d("FoodTripActivity", "Name: " + r.getName() + "Address: " + r.getAddress() + "Type: " + r.getType());
adapter.add(r);

}
};
}

最佳答案

sharedData 未初始化。您需要在调用getText之前对其进行初始化。

您只声明了它EditText sharedData;

sharedData =(EditText) findViewById(R.id.idforshareddata);
String data = sharedData.getText().toString();

关于java - 不幸的是,<应用程序名称>已停止 "String data = sharedData.getText().toString();",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23354926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com