2015-02-18 5 views
0

Я пытаюсь создать приложение кабины для класса, в котором я есть, и в MainActivity.java. Я добавил это. Проблема, с которой я столкнулась, - это когда я добираюсь до строки «final TextView result = (TextView) findViewById (R.id.txtResult)»; Это введение в класс разработки Android-приложений, и почему Java не является требованием, это вне меня, но это то, что есть, и я чувствую себя более уверенно в том, что я делаю, но я не могу понять, почему эта строка не работает. У меня есть строка установки в файле strings.xml для txtResult. Если кто-то может дать представление о том, что я, возможно, пропустил, было бы весьма признательно.Ошибка вычисления Android

public class MainActivity extends ActionBarActivity { 
//Declarations 
double costPerMile=3.25; 
int numberOfMiles; 
double baseCost = 3.00; 
double totalCost; 
String carChoice; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final EditText miles=(EditText)findViewById(R.id.txtdistance); 
    final Spinner group=(Spinner)findViewById(R.array.Cab_Type); 
    Button cost= (Button)findViewById(R.id.btnSubmit); 
    final TextView result=(TextView)findViewById(R.id.txtResult); 

    cost.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      //Todo 
      numberOfMiles = Integer.parseInt(miles.getText().toString()); 
      totalCost = (costPerMile * numberOfMiles) + baseCost; 

      DecimalFormat currency = new DecimalFormat("$###,###.##"); 
      carChoice = group.getSelectedItem().toString(); 

      result.setText("You chose the " + carChoice + " which will cost you " + currency.format(totalCost)); 
     } 
    }); 
} 
+2

Объясните проблему более подробно. «Не работает» недостаточно. Если он сработает, проверьте логарифм. Возможно, вам захочется узнать, как читать stacktrace (это очень просто, но не волнуйтесь) – keyser

+0

При попытке запустить приложение я получаю сообщение об ошибке. Ошибка: (33, 58) error: не удается найти символьную переменную txtResult Ошибка: выполнение выполнено для задачи ': app: compileDebugJava'. > Ошибка компиляции; см. вывод ошибки компилятора. –

+0

Ошибка «The? Какая ошибка? Nvm вы отредактировали. Вместо этого измените вопрос. – keyser

ответ

0

I do have a string setup in the strings.xml file for txtResult

Что вы пытаетесь сделать, не будет работать, если у вас нет TextView в вашем activity_main.xml с идентификатором txtResult.

<TextView 
    android:id="@+id/txtResult" /> 

Если вы пытаетесь сделать TextView отобразить строку, которую Вы установили для txtResult в strings.xml вы могли бы сделать это:

<TextView 
    android:id="@+id/txtResult" 
    android:text="@string/txtResult" /> 
+0

Так что, если я хочу, чтобы это отображалось на отдельном мероприятии, я должен установить это на эту деятельность xml? –

+0

Да, когда начнется ваше новое действие, вы сделаете аналогичный вызов 'setContentView (R.layout.my_new_layout)', и все, что вы хотите отобразить в этом действии, должно находиться в 'my_new_layout.xml'. – vdelricco

+0

Спасибо, что исправил меня. Как только я правильно добавил строки для нового действия, все ошибки были очищены. Теперь это просто способ, которым он вызывает следующее действие, но я попытаюсь выполнить поиск этого. Спасибо еще раз за помощь. –

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