0

好的,这里有一些代码。似乎没有错误,但是在 Android Studio 中运行时,我得到“不幸的是,NameOfApplication 已停止”。我不知道它有什么问题。

public class MainActivity extends Activity implements OnClickListener {

EditText centimeters = (EditText) findViewById(R.id.editCentimeters);
EditText inches = (EditText) findViewById(R.id.editInches);
Button btnConverter = (Button) findViewById(R.id.button);

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btnConverter.setOnClickListener(this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public void onClick(View view) {

    switch(view.getId()){
        case R.id.button:
            double c = Double.valueOf(centimeters.getText().toString());
            double i = c *  0.393701;
            inches.setText(String.valueOf(i));
            break;
        default:
            break;
    }
}
}

我还有另一个问题。这是我对 Android 的开始,并且参考 api 非常大,那么您会推荐什么作为学习它的最佳和最快的方法?对其结构等有基本的了解?

4

2 回答 2

6

setContentView()在调用这样的方法后,您必须初始化 UI 元素onCreate()

EditText centimeters;
EditText inches;
Button btnConverter;

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

    centimeters = (EditText) findViewById(R.id.editCentimeters);
    inches = (EditText) findViewById(R.id.editInches);
    btnConverter = (Button) findViewById(R.id.button);

    btnConverter.setOnClickListener(this);
}
于 2013-07-16T00:33:26.670 回答
1
public class MainActivity extends Activity implements OnClickListener {

   //You need the global variables to access the data from onClick, altough you could findViewById inside the onClick itself not to have global variables that exist during the whole activity life.
   private EditText centimeters;
   private EditText inches;

   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       //Here you set the view (setContentView(R.layout.activity_main)) so after this line is when you can start looking for your views declared in the xml layout file, "activity_main.xml
       setContentView(R.layout.activity_main);
       //We can look for the views form here
       centimeters = (EditText) findViewById(R.id.editCentimeters);
       inches = (EditText) findViewById(R.id.editInches);
       Button btnConverter = (Button) findViewById(R.id.button);

       btnConverter.setOnClickListener(this);
   }

   ....

其余相同

于 2013-07-16T00:42:54.297 回答