未在textview Android中填充数据
我是android应用程序开发的初学者。首先,我尝试用下面的代码开发一个小应用程序。没有编译时或运行时错误。但它既不接收我的输入,也不填充输出未在textview Android中填充数据,android,eclipse,android-layout,Android,Eclipse,Android Layout,我是android应用程序开发的初学者。首先,我尝试用下面的代码开发一个小应用程序。没有编译时或运行时错误。但它既不接收我的输入,也不填充输出 package com.example.myfirstapp; import android.os.Bundle; //import android.view.View.OnClickListener; import android.app.Activity; import android.view.Menu; import 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();
}
}
您已经在计算方法中设置了onclickListener。意味着除非您的计算方法未被调用,否则onClickListener将不会调用,如果onClickListener未被注册,则不会调用calculate方法 这样做
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("HIIIIIIIIII");
setContentView(R.layout.activity_main);
//text = (EditText) findViewById(R.id.textView1);
calcButton = (Button) findViewById(R.id.button1);
calcButton.setOnClickListener(droidTapListener);
}
首先,您应该在onCreate中初始化视图组件,所以在创建时将这段代码移入,并在文本视图声明此变量之前删除TypeDefinition
mileButton = (RadioButton) findViewById(R.id.radio0); //radiobutton objects
kmhButton = (RadioButton) findViewById(R.id.radio1);
calcButton = (Button) findViewById(R.id.button1); //button obj
calcButton.setOnClickListener(this); //you droidTapListener isn't initialize and you implements clickListener so use this for listening this event.
textview1 = (TextView) findViewById(R.id.textView1);
textview2 = (TextView) findViewById(R.id.textView2);
不要忘记为onClick函数添加@override,这样点击按钮将运行onClick函数,从而运行计算函数。您没有在onCreate中调用计算,也没有使用Toast而不是println..并使用按钮设置onClickListener..点击按钮后,您可以调用计算方法并检查文本idfill或null:首先调用此calculate on onCreate方法,并更改此字符串finalresult=String.valueOfres;你似乎误解了Android编程的一些核心概念。为什么不读一本书来学习一些基础知识呢?专业的安卓4应用程序开发是由Reto Meier编写的还是类似的在线课程?谢谢大家!但是,在尝试调用onCreate上的calculate时,我的应用程序被中止。在onCreate上初始化对象时,它们不就成为该func的本地对象吗?在calculate中使用这些对象会导致错误:\n您已声明活动变量RadioButton mileButton,kmhButton;文本视图文本视图1、文本视图2;按钮calcButton;因此,您可以在活动onCreate、calculate等的任何地方使用它。重点是关于您的calcButton侦听器使用它并重写onClick方法