2015-07-02 4 views
-5

Я пробовал следующий код. Но он дает две ошибки. Я хочу рассчитать расстояние между двумя точками по линии формулы и отобразить результат в textView1. Я не знаю. Где я совершил ошибку в коде?Рассчитать расстояние между двумя точками

Cal.java

import android.view.View; 
import android.content.Context; 
import java.lang.Math; 

public class Cal extends View { 
Cal(Context context){ 
    super(context); 
} 
public double result; 
double parameter = ((10-80)^2) + ((15-90)^2); 
public void cal(){ 
    result = Math.sqrt(parameter); 
} 
} 

MainActivity.java

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 

public class MainActivity extends Activity{ 
    Cal cal; 

    TextView textView; 
    public void onCreate(Bundle s){ 
     super.onCreate(s); 
setContentView(R.id.textView1); 
    cal = new Cal(this); 
     textView.setText(cal).; 
    } 
} 

Ошибки:

Gradle: FAILURE: Строить неудачу с исключением.

  • Что пошло не так: Выполнение не выполнено для задачи ': Www: compileDebug'.

    Не удалось выполнить компиляцию; см. вывод ошибки компилятора.

  • Попробуйте: Запустите с опцией -stacktrace, чтобы получить трассировку стека. Запустите с опцией --info или --debug, чтобы получить больше выходных данных журнала.

и

Не удалось выполнить сборку с помощью распределения Gradle 'http://services.gradle.org/distributions/gradle-1.6-bin.zip.

+1

Каковы две ошибки, которые вы получаете? Пожалуйста, отправляйте их тоже! –

+0

Я не знаком с разработкой android, но не должен 'double parameter = ((10-80)^2) + ((15-90)^2);' '' двойной параметр = ((10-80) * (10-80)) + ((15-90) * (15-90)); –

+0

i guess setContentView (R.id.textView1); и textView.setText (cal); это проблемная область, которая не связана друг с другом. –

ответ

0
import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 

public class MainActivity extends Activity{ 
    Cal cal; 
    TextView textView; 

    public void onCreate(Bundle s){ 
    super.onCreate(s); 
    setContentView(R.layout.<your layout name>); // You can not set id of any view here 
    cal = new Cal(this); // This is a object 
    cal.cal(); 
    textView.setText(""+ cal.result); // set the value instead of view object 
    } 
} 
+0

Это установит текстовое представление в значение 0.0, поскольку результат не имеет значения даже после вызова конструктора. –

+0

Ответ обновлен, вы должны вызвать функцию cal() перед установкой результата –

0

Сделать метод кал() возвращают двойное значение:

import android.view.View; 
import android.content.Context; 
import java.lang.Math; 

    public class Cal extends View { 
    Cal(Context context){ 
     super(context); 
    } 
    public double result; 
    double parameter = ((10-80)^2) + ((15-90)^2); 
    public double cal(){ 
     result = Math.sqrt(parameter); 
     return result; 
    } 
    } 

метод кал() вызова и отображения результата.

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 

public class MainActivity extends Activity{ 
    Cal cal; 
    TextView textView; 

    public void onCreate(Bundle s){ 
    super.onCreate(s); 
    setContentView(R.layout.<put your layout name here>); 
    cal = new Cal(this); 
    double res = cal.cal(); 
    textView.setText(""+res); 
    } 
} 

TextView будет установлен в «NaN» в качестве переменного параметра не является переменным числом.

Смежные вопросы