我是一个新手程序员,可能会超越自己,但我写的代码到目前为止似乎不工作,我一直试图找出它的几个小时
问题是,当我运行这个应用程序时,文本视图仍然显示为空。
public class MainActivity extends Activity
{
// GUI controls
TextView thoughtLogView;
/**Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//Set MainActivity.xml as user interface layout
setContentView(R.layout.main);
// bind GUI elements with local controls
thoughtLogView = (TextView) findViewById(R.id.logTextView);
}
private String GetPhoneAddress() {
File file = new File(Environment.getExternalStorageDirectory() + "mythoughtlog.txt");
if (!file.exists()){
String line = "Need to add smth";
return line;
}
String line = null;
//Read text from file
//StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
line = br.readLine();
}
catch (IOException e) {
//You'll need to add proper error handling here
}
final TextView tvphone = (TextView) findViewById(R.id.logTextView);
String saved_phone = GetPhoneAddress();
if (saved_phone.length()>0){
tvphone.setText(saved_phone);
}
return line;
}
下面是布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="top|center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/title"
android:textStyle="normal"
android:gravity="center"
android:layout_marginTop="10dp"
android:textSize="20sp"
android:textColor="#FFFFFF"/>
<TextView
android:layout_width="242dp"
android:layout_height="227dp"
android:id="@+id/logTextView"
android:background="#ffffff" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="bottom|center">
<Button
android:layout_height="80dp"
android:text="New Log"
android:layout_width="match_parent"
android:layout_weight="1.0"
android:textSize="25sp"
android:onClick="onNewLogButtonClick"/>
</LinearLayout>
3条答案
按热度按时间axzmvihb1#
你不擅长打电话
GetPhoneAddress()
这就是你不能设置文本的原因。所以这样修改你的代码。oxcyiej72#
您将从方法中获得字符串结果
GetPhoneAddress()
只有在执行完整方法之后。问题是,当我运行这个应用程序时,文本视图仍然显示为空。
那是因为你没有价值
saved_phone
你不打电话GetPhoneAddress()
或者,我建议您将这些代码行移到方法之外GetPhoneAddress()
,在将其设置为TextView
.2vuwiymt3#
把这条线移到
问题是,在return语句之前,您当前正试图从方法本身getphoneaddress()获取返回字符串,因此它将不返回任何内容,您需要在调用getphoneaddress()之后设置文本,并且可以如上所述实现