یه عیب یابی کوچولو!!
سلام دوستان
یه پروژه ای نوشتم با ان محتوا ک دو تا فیلد متن داره و کاربر باید جفتشو پر کنه تا به صفحه بعد بره وگرنه پیغامی بر مبنای این ک نمیتونید بدون پر کردن برید...
ولی برنامه رو ک نوشتم force close میشه و باهاش ک یکم کلنجار رفتم دیدم مشکا از ورودی سن یعنی عدد صحیحه! البته نمیدونم چرا شرطام هم درست کار نمی کنن !!
package ir.talkhandak.unique_dev;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Unique_devActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final EditText edt_name = (EditText) findViewById(R.id.edt_name);
final EditText edt_age = (EditText) findViewById(R.id.edt_age);
Button btn_run = (Button) findViewById(R.id.btn_run);
final String name = edt_name.getText().toString();
btn_run.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
if (edt_name.getText()!=null) {
if (edt_age.getText()!=null) {
int age =Integer.parseInt(edt_age.getText().toString());
Intent intent = new Intent(Unique_devActivity.this, FinalActivity.class);
startActivity(intent);
intent.putExtra("extra_name", name);
intent.putExtra("extra_age", age);
}
else {
toast_error();
}
} else {
toast_error();
}
}
});
}
public void toast_error() {
Toast.makeText(this, "sorry!! please cheak the feilds!", Toast.LENGTH_LONG).show();
}
}
برادر ، اول اینکه چرا تو در تو گذاشتی شرطهاتو ، دوم اینکه مطمئنی کد دستور intent درست گذاشتی ؟ منظورم اینکه که نام اکتیویتی اول به همراه کلمه this و سپس آنچه شما گذاشتی
1-
if(edt_name.getText()!=null){if(edt_age.getText()!=null){
-------------------------------------------------------------
if(edt_name.getText()!=null and edt_age.getText()!=null)
میذاشتی ؟
---------------------------------------------------------------
2-
startActivity(intent);
اینجوری بنویس
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private EditText edt_username;
private EditText edt_password;
private Button btn_login;
String username;
String password;
public static final String KEY_VALUE = "KEY";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edt_username = (EditText) findViewById(R.id.edt_username);
edt_password = (EditText) findViewById(R.id.edt_password);
btn_login = (Button) findViewById(R.id.btn_login);
btn_login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(edt_username.getText().toString().isEmpty() || edt_password.getText().toString().isEmpty()){
Toast.makeText(MainActivity.this, "Please fill the edit text", Toast.LENGTH_LONG).show();
}
else{
username = edt_username.getText().toString();
password = edt_password.getText().toString();
Intent intent = new Intent(MainActivity.this , SecondActivity.class);
intent.putExtra(MainActivity.KEY_VALUE, username);
intent.putExtra(MainActivity.KEY_VALUE, password);
startActivity(intent);
}
}
});
}
@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;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
اقا ی مشکل کوچولو!
این چرا با متد isEmty مشکل داره؟؟؟؟
The method isEmpty() is undefined for the type String
String str;
if(str !="")
----------------------------
finalEditText edt_age =(EditText) findViewById(R.id.edt_age);
edt_age.getText().toString().isEmpty()
Unique_devActivity
-----------------------------------------------------------------
public class Unique_devActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final EditText edt_name = (EditText) findViewById(R.id.edt_name);
final EditText edt_age = (EditText) findViewById(R.id.edt_age);
Button btn_run = (Button) findViewById(R.id.btn_run);
final String name = edt_name.getText().toString();
btn_run.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if ( !(edt_name.getText().toString().isEmpty()) && !(edt_age.getText().toString().isEmpty()))
{
int age = Integer.parseInt(edt_age.getText().toString());
Intent intent = new Intent(Unique_devActivity.this, FinalActivity.class);
intent.putExtra("extra_name", name);
intent.putExtra("extra_age", age);
//Unique_devActivity.this.
startActivity(intent);
}
else {
toast_error();
}
}
});
}
public void toast_error() {
Toast.makeText(Unique_devActivity.this, "sorry!! please cheak the feilds!", Toast.LENGTH_LONG).show();
}
}
برادر این برنامه ای که من نوشتم و جواب داد با api 15
دوست عزیز یه نگاه به این برنامه بنداز
سورس کدش همونی هست که در بالا قرار دادم
http://s3.picofile.com/file/8198038176/Login.apk.html
این رو من با همون || نوشتم نه با &&
کار هم میکنه هیچ خطایی هم نمیگیره!
تازه اینم جواب میده یه سورس کد دیگه !!!
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private EditText edt_username;
private EditText edt_password;
private Button btn_login;
String username;
String password;
public static final String KEY_VALUE = "KEY";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edt_username = (EditText) findViewById(R.id.edt_username);
edt_password = (EditText) findViewById(R.id.edt_password);
btn_login = (Button) findViewById(R.id.btn_login);
btn_login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(edt_username.getText().toString().contains("") || edt_password.getText().toString().contains("")){
Toast.makeText(MainActivity.this, "Please fill the edit text", Toast.LENGTH_LONG).show();
}
else{
username = edt_username.getText().toString();
password = edt_password.getText().toString();
Intent intent = new Intent(MainActivity.this , SecondActivity.class);
intent.putExtra(MainActivity.KEY_VALUE, username);
intent.putExtra(MainActivity.KEY_VALUE, password);
startActivity(intent);
}
}
});
}
@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;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
روش ایمپورت کردن بلد نیستین خدمتتون عرض کنم
file ->import->general->Existing project into workspace -> zip file path -> finish-
فایل zip شده را وارد می کنی و بعد برنامه رو اجرا میکنی !
این خطی که ارور میگیره!
int age = Integer.parseInt(edt_age.getText().toString());
مرسی بابت این روحیه ای ک بین بچه هامون برقراره!!
دمتون گرم!! ی تبریکم به استاد
ولی خیلی زیباتر بود این بحث کشدارو ی وقت دیگه انجام میدادید!
و نه ""شب قدر""...
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .






