我是Android应用开发者的初学者。首先,我试着用下面的代码开发一个小应用程序。没有编译时或运行时错误。但它没有考虑到我的输入,也没有获得输出。数据没有被填充在textview-Android中
package com.example.myfirstapp;
import android.os.Bundle;
//import android.view.View.OnClickListener;
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.RadioButton;
import android.widget.TextView;
/*import android.widget.Toast;
import android.app.Activity;
import android.view.Menu;*/
public class MainActivity extends Activity implements OnClickListener{
//private EditText text;
RadioButton mileButton,kmhButton ;
TextView textview1,textview2;
Button calcButton;
private View.OnClickListener droidTapListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("HIIIIIIIIII");
setContentView(R.layout.activity_main);
//text = (EditText) findViewById(R.id.textView1);
}
@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);
//getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public void calculate() {
mileButton = (RadioButton) findViewById(R.id.radio0); //radiobutton objects
kmhButton = (RadioButton) findViewById(R.id.radio1);
calcButton = (Button) findViewById(R.id.button1); //button obj
calcButton.setOnClickListener(droidTapListener); //setting up click listeners.
TextView textview1 = (TextView) findViewById(R.id.textView1);
TextView textview2 = (TextView) findViewById(R.id.textView2);
/*if(text.getText().length()==0)
System.out.println("Empty Value");*/
if(textview1.getText().length()==0)
System.out.println("Enter a valid input.");
/*Toast.makeText(this, "enter a valid number", Toast.LENGTH_LONG)
.show(); */
double inputValue = Double.parseDouble(textview1.getText().toString());
if (mileButton.isChecked()) {
//text.setText(String.valueOf(convertToMiles(inputValue)));
double res= convertToMiles(inputValue);
String finalresult = new Double(res).toString();
textview2.setText(finalresult);
System.out.println("RESULT"+finalresult);
// uncheck "to miles" Button
mileButton.setChecked(false);
// check "to km/h" Button
kmhButton.setChecked(true);
} else { /* if kmhButton isChecked() */
//text.setText(String.valueOf(convertToKmh(inputValue)));
double res= convertToKmh(inputValue);
String finalresult = new Double(res).toString();
textview2.setText(finalresult);
System.out.println("RESULT"+finalresult);
// uncheck "to km/h" Button
kmhButton.setChecked(false);
// check "to miles" Button
mileButton.setChecked(true);
}
}
private double convertToMiles(double inputValue) {
// convert km/h to miles
double res=inputValue * 1.609344;
return res;
//return (inputValue * 1.609344);
}
private double convertToKmh(double inputValue) {
// convert miles to km/h
return (inputValue * 0.621372);
}
public void onClick(View v) {
calculate();
}
}
你没有在onCreate()中调用你的calculate()...并且还使用Toast而不是println ..并且使用按钮来设置onClickListener..so在按钮上单击可以调用calculate方法并检查文本ID填充或null :) – Ranjit 2014-09-24 11:44:47
首先在'onCreate()'方法上调用'calculate()'并且改变这个'String finalresult = String.valueOf(res);' – Piyush 2014-09-24 11:47:47
你似乎误解了几个核心概念Android编程。为什么不试图通过阅读一本书(Reto Meier的专业Android 4应用程序开发很好)或在线课程(如https://www.udacity.com/course/ud853)来学习基础知识? – 2Dee 2014-09-24 11:51:03