调用函数时活动崩溃的问题

时间:2011-08-05 08:38:10

标签: android methods android-intent

这是我第一次参加这个论坛,如果我的问题看起来很奇怪,请原谅我。我会尽量做到尽可能彻底。 我正在创建一个翻译程序。 此程序具有菜单活动,翻译活动,添加词活动。 这三项活动是通过意图联系在一起的 添加到清单文件中。 在翻译活动中,我想创建一个翻译方法。 按下翻译按钮后,程序崩溃。

public class VertaalActivity extends Activity {
private Button vertaal;
private Button terug;
private EditText ET_NL;
private EditText ET_EN;
private ArrayList<String>nlWoorden = new ArrayList<String>();
private ArrayList<String>enWoorden = new ArrayList<String>();

public void Vertaal(){

    String woord = ET_NL.getText().toString();

        if(nlWoorden.contains(woord)){
            int i = nlWoorden.indexOf(woord);
            ET_EN.setText(enWoorden.get(i));
        }else{
            ET_EN.setText("Woord niet gevonden");
        }

}

public void ArrayVullen(){
    nlWoorden.add("auto");
    nlWoorden.add("bord");
    nlWoorden.add("trein");
    nlWoorden.add("spel");
    nlWoorden.add("scherm");
    nlWoorden.add("toetsenbord");
    nlWoorden.add("foto");
    enWoorden.add("car");
    enWoorden.add("plate");
    enWoorden.add("train");
    enWoorden.add("game");
    enWoorden.add("screen");
    enWoorden.add("keyboard");
    enWoorden.add("picture");
}

public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.vertalerlayout);
    terug = (Button)findViewById(R.id.terug);
    vertaal = (Button)findViewById(R.id.vertalen);

    ArrayVullen();

    vertaal.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            Vertaal();

            /*
             * Tested the toast and the toast shows the text 
             * 
            Context context = getApplicationContext();
            CharSequence text = "Hello toast!";
            int duration = Toast.LENGTH_SHORT;

            Toast toast = Toast.makeText(context, text, duration);
            toast.show();
            */
        }

    });

    terug.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            Intent intent = new Intent(VertaalActivity.this,MenuActivity.class);
            startActivity(intent);

        }
    });

}

}

2 个答案:

答案 0 :(得分:1)

我看不到你从XML获得EditTexts(就像你使用按钮一样)。在使用ET_NL之前,您需要执行以下操作:

ET_NL = (EditText)findViewById(R.id.etnl); // Or whatever id you've declared in your layout XML

ET_EN变量也是如此。否则,您的Vertaal()方法将为null,导致应用程序崩溃。

答案 1 :(得分:1)

在使用editText字段

之前尝试使用此代码
ET_NL= (EditText)findViewById(R.id.edittext1);
ET_EN = (EditText)findViewById(R.id.edittext2);