آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

پروژه Converter من برای cm و mm مشکل دارد

naruto  11 سال پیش  9 سال پیش
+1 0

پروژه UnitConverter رو یه بار خودم نوشتم و به مشکل برخوردم. در قسمت میلیمتر و سانتیمتر مشکلی نیست ولی برای متر و کیلومتر وقتی دکمه Convert رو می زنم، برنامه پیغام ForceClose میده و بسته میشه. با کد شما هم مقایسه کردم تفاوتی پیدا نکردم.
مشکل از چیه؟

package dsp.app;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.Button;
import android.widget.EditText;


public class LengthActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.length);

final EditText edtMm = (EditText) findViewById(R.id.edtMm);
final EditText edtCm = (EditText) findViewById(R.id.edtCm);
final EditText edtM = (EditText) findViewById(R.id.edtM);
final EditText edtKm = (EditText) findViewById(R.id.edtKm);

Button btnConvert = (Button) findViewById(R.id.btnConvert);

edtMm.setOnFocusChangeListener(new OnFocusChangeListener() {

@Override
public void onFocusChange(View arg0, boolean arg1) {
edtCm.setText("");
edtM.setText("");
edtKm.setText("");
}
});

edtKm.setOnFocusChangeListener(new OnFocusChangeListener() {

@Override
public void onFocusChange(View arg0, boolean arg1) {
edtCm.setText("");
edtM.setText("");
edtMm.setText("");
}
});
edtCm.setOnFocusChangeListener(new OnFocusChangeListener() {

@Override
public void onFocusChange(View arg0, boolean arg1) {
edtMm.setText("");
edtM.setText("");
edtKm.setText("");
}
});
edtM.setOnFocusChangeListener(new OnFocusChangeListener() {

@Override
public void onFocusChange(View arg0, boolean arg1) {
edtCm.setText("");
edtM.setText("");
edtMm.setText("");
}
});

btnConvert.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
double valueMm = 0;
if (edtMm.getText().toString().length() > 0) {
valueMm = Double.parseDouble(edtMm.getText().toString());
}

if (edtCm.getText().toString().length() > 0) {
valueMm = Double.parseDouble(edtCm.getText().toString()) * 10.0;
}

if (edtM.getText().toString().length() > 0) {
valueMm = Double.parseDouble(edtMm.getText().toString()) * 1000.0;
}

if (edtKm.getText().toString().length() > 0) {
valueMm = Double.parseDouble(edtMm.getText().toString()) * 1000000.0;
}

edtMm.setText("" + valueMm);
edtCm.setText("" + (valueMm * 0.1));
edtM.setText("" + (valueMm * 0.001));
edtKm.setText("" + (valueMm * 0.0000001));

}
});

}
}


وقتی که تعداد Button ها یا EditText ها زیاد میشه و از صفحه Xml ای که طراحی می کنیم خارج میشه باید چه کاری انجام بدیم که قابلیت اسکرول کردن در صفحه داشته باشیم؟

 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
uncocoder  11 سال پیش
0 0

به داخل if ها توجه کنید، در if مربوط به m و Km نوشته اید editMm.getText() که باید تبدیل بشه به editM و editKm.

در خصوص scroll هم کافیست که عناصر مورد نظر خود را داخل LinearLayout داخل یک ScrollView قرار دهید و به این ترتیب اسکرول خواهد شد.
پاسخ به سوال 
خواست خدایی  9 سال پیش
0 0

 @Override
publicvoid onClick(View arg0){
double valueMm =0;
if(edtMm.getText().toString().length()>0){
valueMm =Double.parseDouble(edtMm.getText().toString());
}

if(edtCm.getText().toString().length()>0){
valueMm =Double.parseDouble(edtCm.getText().toString())*10.0;
}

if(edtM.getText().toString().length()>0){
valueMm =Double.parseDouble(edtM.getText().toString())*1000.0;
}

if(edtKm.getText().toString().length()>0){
valueMm =Double.parseDouble(edtKm.getText().toString())*1000000.0;
+1 0
کد رو به شکل بالا و با دقت تغییر بدید درست میشه البته استادم فرموده اند. یعنی تو قسمت if بعد از double.parse کلمه edt ها رو با اول if یکسان کنید. این کد رو دقیق با کد خودت چک کن راحت تری :) و البته آخر موضوع سوالتون لطفا یه حل شد بنویسید ممنون (9 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .