2014-02-11 3 views
-1

Android 용 간단한 할인 앱을 만들고 있지만 내 앱이 실행되지 않아서 친구들이 나에게 잘못된 점을 알 수있게되기를 바랍니다.
저는 안드로이드 개발에 익숙하지 않으므로 아마도 많은 것들을 잘못하고 있고 여기에 제 코드가 있습니다.Android 할인 앱이 실행되고 있지 않습니다.

지금 난 그냥 그냥 버튼을 클릭 한 RadioButton 구성 부분, 일하고,의 10 %가, 다음은 올바르게 저장 양이 가장 가능성이 당신을있는 총

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.text.Editable; 
import android.text.TextWatcher; 
import android.widget.*; 

public class MainActivity extends Activity { 

private double listedPrice; 
private int discountPrecentID; 
private RadioGroup discount; 
private double discountPrecent; 
// private RadioButton discountPrecent; 
private TextView savedAmount; 
private TextView payAmount; 
private EditText userInput; 

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

    userInput = (EditText) findViewById(R.id.editText1); 
    listedPrice = Double.parseDouble(userInput.getText().toString()); 
    savedAmount = (TextView) findViewById(R.id.textView7); 
    payAmount = (TextView) findViewById(R.id.textView8); 
    discount = (RadioGroup) findViewById(R.id.radioGroup1); 
    // SeekBar seekBar = (SeekBar) findViewById(R.id.seekBar1); 
    // seekBar.setOnSeekBarChangeListener(seekBarListener); 
} 

public void onClick(View v) { 

    discountPrecentID = discount.getCheckedRadioButtonId(); 
    // discountPrecent = (RadioButton) findViewById(discountPrecentID); 
    switch (discountPrecentID) { 
    case R.id.radio0:{ 
     discountPrecent = 0.10; 
     savedAmount.setText("$" + listedPrice * discountPrecent); 
     payAmount.setText("$" 
       + (listedPrice - (listedPrice * discountPrecent))); 
     break; 
    } 
    case R.id.radio1:{ 
     discountPrecent = 0.25; 
     savedAmount.setText("$" + listedPrice * discountPrecent); 
     payAmount.setText("$" 
       + (listedPrice - (listedPrice * discountPrecent))); 
     break; 
    } 
    case R.id.radio2:{ 
     discountPrecent = 0.50; 
     savedAmount.setText("$" + listedPrice * discountPrecent); 
     payAmount.setText("$" 
       + (listedPrice - (listedPrice * discountPrecent))); 
     break; 
    } 
    } 

} 

@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; 
} 

} 
+1

작동하지 않는 기능은 무엇입니까? 어디서 붙어 있니? – codeMagic

+0

정직한 질문을 올리는 데 -2 명의 담당자가 이미 있습니다. 나는 이것을 쓰는데 많은 시간을 보냈고, 사람들은 아무 말도없이 부정적인 담당자를 줬어? 나는 슬프다. – Samson

+0

나는 downvote하지 않았다. 그러나 나는 당신이 당신의 문제를 설명하지 않았기 때문에 그것을 추측하려고 노력할 것이다. – codeMagic

답변

1

표시됩니다 가정 해 봅시다 문제

listedPrice = Double.parseDouble(userInput.getText().toString()); 

사용자는 하드 코딩 된 무언가가 아니라면, 당신이 NumberFormatException을 얻을 것이다 onCreate()이 코드에 뭔가를 입력 할 수있는 기회가되지 않았습니다. 사용자가 무언가를 입력 할 기회가있는 경우 해당 코드를 onClick() 또는 다른 이벤트에 삽입해야합니다.

try/catch 안에 넣는 것과 같은 오류 검사도 수행해야합니다.

try 
{ 
    listedPrice = Double.parseDouble(userInput.getText().toString()); 
} 
catch (NumberFormatException e) 
{ 
    // do something if invalid double 
} 

여기에 게시 할 때 예상대로 작동하지 않는 점과 문제가 무엇인지 명확하게 설명해야합니다. 또한 응용 프로그램이 충돌하면 logcat에 결과가 표시되므로 문제가있는 곳을 쉽게 볼 수 있도록 게시해야합니다.

Eclipse는 런타임 오류이므로 컴파일 할 때 Eclipse에 아무 것도 보이지 않으므로 아무런 문제가 없다고하지 않았습니다. Eclipse가 알고있는 한 구문이 정확하다는 것을 의미하지만 논리는 다릅니다.

+0

조언을 주셔서 감사합니다! 나는 내가 지금 문제를 고쳤다 고 생각한다. – Samson

관련 문제