不幸的是,该应用已停止工作 - 安卓

时间:2012-08-24 02:49:22

标签: java android android-layout

点击按钮时会发生这种情况

我的Activity.XML文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<EditText android:id="@+id/enter_number"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:hint="@string/enter_number"
    android:layout_weight="1"
    />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_calculate" 
    android:onClick="calculate"
    />
</LinearLayout>

.java文件

    package com.example.helloworld;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.widget.TextView;

public class Tables extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Get the message from the intent
        int number=0;
        int i=1;
        int next=0;
        Intent intent = getIntent();
        String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
        number=Integer.parseInt(message);
        TextView textView = new TextView(this);

        String[] myString = new String[10]; //create array
        for (i = 1; i <= myString.length; i++) { 
             next= number + next;
             myString[i] =  String.valueOf(number)+'x'+String.valueOf(i)+'='+String.valueOf(next)+'\n';
            // textView.setText(myString[i]);  
            // setContentView(textView);
        }
        StringBuilder builder = new StringBuilder();
        for (String s : myString){
          builder.append(s+" ");
        textView.setText(builder.toString());
        }
        setContentView(textView);

    }



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_tables, menu);
        return true;
    }
}

我认为错误是在显示期间。但找不到解决方案。

谢谢,

2 个答案:

答案 0 :(得分:1)

您必须在您的活动中定义calculate方法。由于您在布局文件中设置了onClick属性,当您单击该按钮时,Android Framework将尝试调用Tables活动的follow方法:

  public void calculate(View v){
      //put you code here this will be execute when the button is clicked
  }

答案 1 :(得分:0)

看起来布局文件适用于您的主要活动,而不适用于Tables活动。确保您的MainActivity类具有签名为public void calculate(View view)的方法,以便活动可以响应按钮单击。这可能是问题所在,而不是显示Tables活动的问题。