我开始学习一个小的Android应用程序。我在屏幕上放置了一个输入文本和按钮。这显示在模拟器上。按下按钮(有一个onClickListener)后,应用程序崩溃并告诉我模拟器的屏幕:“应用程序......已经意外停止。再次尝试”,我有一个“强制关闭”,当然关闭应用程序。 我多次清理和重建项目。我没有显示错误。(使用eclipse) 这是layout / main.xml:
<ScrollView android:id="@+id/widget37" android:layout_width="247px"
android:layout_height="282px" android:scrollbars="vertical"
android:layout_x="38px" android:layout_y="130px">
</ScrollView>
<RadioButton android:id="@+id/compactList"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Compact List" android:layout_x="36px" android:layout_y="78px">
</RadioButton>
<RadioButton android:id="@+id/detailedList"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Detailed List" android:layout_x="176px"
android:layout_y="78px">
</RadioButton>
这是活动类:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class ShowStuffs extends Activity implements View.OnClickListener {
private Button searchbtn;
private EditText input;
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
searchbtn = (Button)findViewById(R.id.searchBtn);
searchbtn.setOnClickListener(this);
}
public void onClick(View view) {
System.out.println("on click...");
String searchedText = input.getText().toString();
}
}
我无法弄清楚它有什么问题。任何建议都非常受欢迎。谢谢。
答案 0 :(得分:2)
在layout / main.xml中,您需要声明searchBtn
这样的事情:
<Button android:id="@+id/searchBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Search Button"/>
更新:我尝试使用以下代码,没有错误。
package com.dude.test1;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class foo extends Activity implements View.OnClickListener {
private Button searchbtn;
private EditText input;
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
searchbtn = (Button)findViewById(R.id.searchBtn);
input = (EditText) findViewById(R.id.input);
searchbtn.setOnClickListener(this);
}
public void onClick(View view) {
//System.out.println("on click...");
Toast.makeText(this, "clicked!", Toast.LENGTH_SHORT).show();
String searchedText = input.getText().toString();
}
}
XML文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:background="#FFFFFF">
<ScrollView android:id="@+id/widget37" android:layout_width="247px"
android:layout_height="282px" android:scrollbars="vertical"
android:layout_x="38px" android:layout_y="130px">
</ScrollView>
<RadioButton android:id="@+id/compactList"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Compact List" android:layout_x="36px" android:layout_y="78px">
</RadioButton>
<RadioButton android:id="@+id/detailedList"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Detailed List" android:layout_x="176px"
android:layout_y="78px">
</RadioButton>
<Button android:id="@+id/searchBtn" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="Search Button" />
<EditText android:id="@+id/input" android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
答案 1 :(得分:1)
看起来像NullPointerException。
String searchedText = input.getText().toString();
输入的值是什么?
答案 2 :(得分:0)
将此添加到两个按钮: android:onClick =“onClick”