PDA

View Full Version : خروج از اکتیویتی



ho3ein.3ven
سه شنبه 08 بهمن 1392, 14:25 عصر
سلام . من تازه برنامه نویسی اندروید رو با اکلیپس شروع کردم .
می خوام وقتی که روی یک دکمه کلیک میکنم برنامم بسته شه . کد زیر رو مینویسم هیچ خطایی نمیده ولی متاسفانه برنامه اجرا نمیشه .
package com.example.proj2;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Hossein extends Activity implements View.OnClickListener {

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

Button btn = (Button) findViewById(R.id.button1);
EditText et =(EditText) findViewById(R.id.textView1);
btn.setOnClickListener(this);

Toast.makeText(this, "oncreate", 1).show();
}

public void onClick(View v)
{
finish();
}
}

اینم کد اکس ام ال :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Hossein" >

<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello_world" />

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="34dp"
android:text="Button" />

</RelativeLayout>

خواهشا اگه کسی تو این زمینه اطلاعی داره راهنمایی کنه . با تشکر از همگی

saeed_g21
سه شنبه 08 بهمن 1392, 15:44 عصر
امید وارم مفید باشه
این البته با استفاده از دیالوگ هست

button.setOnClickListener(new OnClickListener() {

public void onClick(View arg0) {

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);

// set title
alertDialogBuilder.setTitle("آیا خارج می شوید؟");

// set dialog message
alertDialogBuilder
.setMessage("برای خروج دکمه بله را کلیک نمایید")
.setCancelable(false)
.setPositiveButton("بله",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
// if this button is clicked, close
// current activity
System.exit(id);
}
})
.setNegativeButton("خیر",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
dialog.cancel();
}
});

// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();

// show it
alertDialog.show();

}

});

ho3ein.3ven
سه شنبه 08 بهمن 1392, 16:13 عصر
خیلی ممنون از لطفتون دوست عزیز
اگه امکانش هست همون کدی که گذاشتم رو اصلاح کنید چون من تازه کارم و از این کدی هم که گذاشتین سر در نمیارم.واقعا برام سواله که چرا ی اجرا نمیشه ؟ :متفکر:

reza_azizi2010
سه شنبه 08 بهمن 1392, 17:23 عصر
package com.example.proj2;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Hossein extends Activity implements View.OnClickListener {

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

Button btn = (Button) findViewById(R.id.button1);
EditText et =(EditText) findViewById(R.id.textView1);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
Hossein.this.finish();
}
});
Toast.makeText(this, "oncreate", 1).show();
}


}

ghader62
سه شنبه 08 بهمن 1392, 17:35 عصر
سلام
package com.example.proj2;

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

public class Hossein extends Activity implements OnClickListener {

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

Button btn = (Button) findViewById(R.id.button1);
EditText et =(EditText) findViewById(R.id.textView1);
btn.setOnClickListener(this);

Toast.makeText(this, "oncreate", 1).show();
}

@Override
public void onClick(View v)
{
finish();
}
}

ho3ein.3ven
سه شنبه 08 بهمن 1392, 19:14 عصر
تشکر از هر 2 عزیزی که پاسخ دادن
متاسفانه کد هر دو عزیز رو امتحان کردم ولی بازم مشکل حل نشد.
برنامه هیچ خطایی نمیده ولی وقتی می خوام اجرا کنم پیام زیر رو نشون میده .

116128

saeed_g21
سه شنبه 08 بهمن 1392, 19:18 عصر
چرا از کدی که من دادن استفاده نکردی ؟

ho3ein.3ven
سه شنبه 08 بهمن 1392, 19:24 عصر
چرا از کدی که من دادن استفاده نکردی ؟

من الان رو پروژه خاصی کار نمی کنم که بخوام این کد رو تو پروژه استفاده کنم و چون تازه شروع کردم درک این کدی که شما قرار دادین برام سخته . طبق یه فیلم آموزشی دارم می رم جلو تو فیلم این برنامه رو نوشت و جواب گرقت ولی برای من جواب نمی ده .

saeed_g21
سه شنبه 08 بهمن 1392, 19:54 عصر
کار مشکلی نیست


button = ای دی دگمه ای هست که در لایوت گذاشتی بعد از خاصیت setOnClickListener استفاده کرده
button.setOnClickListener(new OnClickListener() {

public void onClick(View arg0) {
اینجا یک AlertDialog میسازه که برای گرقتن تاییدیه خروج نیازی نباشه کاربر به یک صفحه دیگه پاس بشه

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);

اینجا تایتل رو ست میکنه

alertDialogBuilder.setTitle("آیا خارج می شوید؟");

اینجا هم متن پیغام رو ست کرده

alertDialogBuilder
.setMessage("برای خروج دکمه بله را کلیک نمایید")
.setCancelable(false)
اینجا یک دگمه با نوشته بله تولید کرده که کاربر وقتی روش کلیک میکنه واکنشی که در داخلش تعریف شده اجرا میشه

.setPositiveButton("بله",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
این کدی هست که برنامه رو میبنده

System.exit(id);
}
})
اینم یک دگمه دیگست با متن خیر که باز مثل دگمه بالا یک واکنش براش تعریف شده اونم اینه که کاربر وقتی روش کلیک میکنه دیالوگ رو میبنده

.setNegativeButton("خیر",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
این کدیس که دیالوگ رو مجبور میکنه بسته شه

dialog.cancel();
}
});

اینجا دستور ساخت دیالوگ داده میشه و تمام کافیس فقط الان دیالوگ رو نمایش بدیم

AlertDialog alertDialog = alertDialogBuilder.create();

اینم کدیس که دیالوگ رو نمایش میده

alertDialog.show();

}

});




حله ؟

ho3ein.3ven
سه شنبه 08 بهمن 1392, 20:55 عصر
داداش دست درد نکنه خیلی لطف کردی .
ولی بزار شاید کسی بتونه مشکل همون رو حل کنه . چون من الان میگم شاید مشکل از ماشین مجازی یا اکلیسم باشه .

ghader62
سه شنبه 08 بهمن 1392, 21:22 عصر
آقا حسین عزیز همه کدهایی که دوستان در این صفحه قرار دادند درسته
برای اینکه متوجه ایراد بشیم لوگ کت برنامه رو بزار اینجا تا چک کنیم
همچنین چک کن که توی xml آیدی ها رو درست وارد کرده باشی مثلا برای Button باید طبق کدت button1 باشه
و همچنین EditTextرو احیانا بجای TextView وارد نکرده باشی(من احتمال میدم که ایرادت همین باشه)
یعنی مثلا بجای
TextView et =(TextView) findViewById(R.id.textView1);
خط زیر رو اشتباهی وارد کرده باشی
EditText et =(EditText) findViewById(R.id.textView1);
در هر حال لوگ کت رو قرار بده تا ببینیم مشکل چیه

ho3ein.3ven
سه شنبه 08 بهمن 1392, 21:40 عصر
آقا قادر دست درد نکنه . خیلی لطف کردی . مشکل برنامم همین بود که فرمودین .
از همگی دوستانی که کمک کردن ممنونم

raha_jon
پنج شنبه 01 اسفند 1392, 16:57 عصر
سلام من از کد زیر برای خروج استفاده میکنم (چون جای کد های بالایی را نفهمیدم) اما وقتی بله را میزنم دوباره پیام ظاهر میشه و از برنامه خارج نمیشه و با زدن دکمه ی "خیر" کادر alert بسته میشه لطفا کمک کنید.
public void onBackPressed()
{
new AlertDialog.Builder(this).setTitle("آیا می خواهید از برنامه خارج شوید؟").setNegativeButton("خیر", null).setPositiveButton("بله", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface paramAnonymousDialogInterface, int paramAnonymousInt)
{
main.this.onBackPressed();
}
}).create().show();
}

haniiii
پنج شنبه 01 اسفند 1392, 17:15 عصر
سلام من از کد زیر برای خروج استفاده میکنم (چون جای کد های بالایی را نفهمیدم) اما وقتی بله را میزنم دوباره پیام ظاهر میشه و از برنامه خارج نمیشه و با زدن دکمه ی "خیر" کادر alert بسته میشه لطفا کمک کنید.
public void onBackPressed()
{
new AlertDialog.Builder(this).setTitle("آیا می خواهید از برنامه خارج شوید؟").setNegativeButton("خیر", null).setPositiveButton("بله", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface paramAnonymousDialogInterface, int paramAnonymousInt)
{
main.this.onBackPressed();
}
}).create().show();
}

دوست عزیز شما دارین خودش رو دوباره صدا میزنین یه loop بی نهایت میشه میتونی به جای main.this.onBackPressed() فقط از main.this.finish() استفاده کنی

raha_jon
جمعه 02 اسفند 1392, 12:01 عصر
تشکر فراوان،ببخشید میشه این alert که میاره را زیبا کرد؟

haniiii
جمعه 02 اسفند 1392, 21:56 عصر
تشکر فراوان،ببخشید میشه این alert که میاره را زیبا کرد؟

سرچ کن custom alert dialog