0

コードは正常に機能していました..単純な計算アプリです。

残念ながら、何かを変更した後、動作しなくなりました..問題は、これが何かわからないことです..

これは私のコード...

package com.bogaza.barazileyyecalc;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

//declarations..

final TextView        lbl1 =  (TextView)       findViewById(R.id.textView1); 
final TextView        lbl2 =  (TextView)       findViewById(R.id.textView2);
final EditText        txt1 =  (EditText)       findViewById(R.id.editText1); 
final EditText        txt2 =  (EditText)       findViewById(R.id.editText2);
final Button          btn1 =  (Button)         findViewById(R.id.button1); 
final TextView        lbl3 =  (TextView)       findViewById(R.id.textView3);

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

// click button to get numbers from edittexts and add them to textviews ..      

    btn1.setOnClickListener(new OnClickListener() {   


        public void onClick(View v) {  
            if(v.getId() == R.id.button1){

            int value1 = (int) ((txt1.getText().toString()   
                    .equals("")) ? 0 : Double.valueOf(txt1.getText().toString()));   

            int value2 = (int) ((txt2.getText().toString()   
                    .equals("")) ? 0 : Double.valueOf(txt2.getText().toString()));   

            lbl3.setText(String.valueOf(value1 + value2));
            }
          }   

    });   ;
}

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

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

}

}

それは正常に動作していました..レイアウトを変更してより良いデザインを作ろうとしました..その後、問題が発生しました..実行をクリックすると..デバイスに表示され、直接クラッシュします..

4

4 に答える 4

1

setContextView を実行する前にビューを初期化することはできません。

final TextView        lbl1 =  (TextView)       findViewById(R.id.textView1); 
final TextView        lbl2 =  (TextView)       findViewById(R.id.textView2);
.
.

OncreatesetContentView への呼び出しの後に findViewById コードを移動します。

于 2012-11-18T09:28:32.297 に答える
0

OnCreate() メソッドの前に ViewByID() を見つけることができません! したがって、次のように Oncreate() メソッド内にそれらを配置してみてください:

public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button btn1= (Button)findviewById(R.id.*);
于 2012-11-18T09:59:49.840 に答える
0

レイアウトを設定する前に、ビューを初期化しました。

次のようにコードを変更すると、機能するはずです。

public class MainActivity extends Activity implements OnClickListener 
{
//declarations..

final TextView lbl1;
final TextView lbl2;
final EditText txt1;
final EditText txt2;
final Button btn1;
final TextView lbl3;

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    lbl1 = (TextView)findViewById(R.id.textView1);
    lbl2 = (TextView)findViewById(R.id.textView2);
    txt1 = (EditText)findViewById(R.id.editText1); 
    txt2 = (EditText)findViewById(R.id.editText2);
    btn1 = (Button)findViewById(R.id.button1); 
    lbl3 = (TextView)findViewById(R.id.textView3);

    // click button to get numbers from edittexts and add them to textviews ..      

    btn1.setOnClickListener(new OnClickListener()
    {
        public void onClick(View v)
        {
            ...
        }
于 2012-11-18T09:39:15.943 に答える
0

このコードを入れてください:

//declarations..

final TextView        lbl1 =  (TextView)       findViewById(R.id.textView1); 
final TextView        lbl2 =  (TextView)       findViewById(R.id.textView2);
final EditText        txt1 =  (EditText)       findViewById(R.id.editText1); 
final EditText        txt2 =  (EditText)       findViewById(R.id.editText2);
final Button          btn1 =  (Button)         findViewById(R.id.button1); 
final TextView        lbl3 =  (TextView)       findViewById(R.id.textView3);

あなたのonCreate()方法に。

これが役立つことを願っています。

于 2012-11-18T09:35:33.453 に答える