0
제목처럼 말합니다 메신저 안드로이드 새로운. 나는 이미 꽤 많이 배웠다. 내 코드에서 내가 더 잘할 수있는 것이 있는지 알고 싶습니다. 그런 간단한 앱에는 너무 많은 것 같습니다. 통합 할 수있는 항목은 무엇입니까? 또한 사용자가 번호를 입력하기 전에 제출을 누를 때 나는 잡으려고 무엇을 권하고 싶습니다.Android가 처음입니다. 제발 도와주세요 문제를 지적하십시오
package com.michaelpeerman.probability;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.EditorInfo;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import android.widget.Toast;
import java.util.Random;
public class ProbabilityActivity extends Activity implements OnClickListener {
private Button submit;
ProgressDialog dialog;
int increment;
Thread background;
int heads = 0;
int tails = 0;
int maximum;
EditText max;
String max_string = "1000000";
int max_int = 1000000;
public void onCreate(Bundle paramBundle) {
super.onCreate(paramBundle);
setContentView(R.layout.main);
submit = ((Button) findViewById(R.id.submit));
submit.setOnClickListener(this);
EditText max = (EditText) findViewById(R.id.number);
max.setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
if ((event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER))
|| (actionId == EditorInfo.IME_ACTION_DONE)) {
submit();
}
return false;
}
});
}
public void onClick(View view) {
submit();
}
public void submit() {
EditText max = (EditText) findViewById(R.id.number);
maximum = Integer.parseInt(max.getText().toString());
if (maximum >= max_int) {
maximum = max_int;
max.setText(max_string);
Context context = getApplicationContext();
CharSequence text = "You entered a number greater than ten million. Setting number to ten million.";
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
startThread();
} else {
startThread();
}
}
public void startThread() {
increment = 1;
dialog = new ProgressDialog(this);
dialog.setCancelable(true);
dialog.setMessage("Flipping Coin...");
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setProgress(0);
dialog.setMax(maximum);
dialog.show();
dialog.setOnCancelListener(new OnCancelListener() {
public void onCancel(DialogInterface dialog) {
background.interrupt();
TextView result = (TextView) findViewById(R.id.result);
result.setText("heads : " + heads + "\ntails : " + tails);
}
});
background = new Thread(new Runnable() {
public void run() {
heads = 0;
tails = 0;
for (int j = 0; !Thread.interrupted() && j < dialog.getMax(); j++) {
int i = 1 + new Random().nextInt(2);
if (i == 1)
heads++;
if (i == 2)
tails++;
progressHandler
.sendMessage(progressHandler.obtainMessage());
}
}
});
background.start();
}
Handler progressHandler = new Handler() {
public void handleMessage(Message msg) {
dialog.incrementProgressBy(increment);
if (dialog.getProgress() == dialog.getMax()) {
dialog.dismiss();
TextView result = (TextView) findViewById(R.id.result);
result.setText("heads : " + heads + "\ntails : " + tails);
}
}
};
}
AsyncTaask에 대해 배우기에 좋은 곳은 어디입니까? – mpeerman
제공된 링크를 클릭하십시오. – SztupY