میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

قابلیت لغو عملیات در اندروید

لازم است قابلیت لغو عملیات حساس را برای کاربر اپلیکیشن خود در اندروید را فراهم کنید. برای مثال ممکن است کاربر از حذف آیتم های انتخابی لیست منصرف شده و بخواهد این عملیات را لغو کند.

روش معمول و پر طرفدار این است که یک گزینه در انتهای صفحه برای کاربر به نمایش بگذارید که امکان انتخاب این گزینه با گذشت مدت زمان خاص یا هنگامی که کاربر به ادامه ی تعامل با اپلیکیشن می پردازد، از میان برداشته می شود.

به عنوان نمونه می توان به اپلیکیشن Gmail اشاره کرد که دقیقا همین رفتار را برای لغو عملیات (حذف) پیاده سازی می کند.

Gmail

نمونه ی زیر قابلیت undo جهت لغو عملیات حذف دائمی یک آیتم را پیاده سازی می کند. برای این منظور یک نوار موقتی نمایان می شود که کاربر برای کلیک بر روی آن مدت زمان محدودی دارد و پس از گذشت آن بازه ی زمانی، نوار حاوی دکمه ی undo با انیمیشن از صفحه محو می شود.
بر اساس قالب آماده com.vogella.android.userinterface.undo یک پروژه ی جدید به نام (
BlankTemplate ( template ایجاد کنید

فایل layout زیر را برای activity خود ایجاد کنید. این فایل با استفاده از FrameLayout دو بخش مجزای رابط کاربری را نمایش می دهد. نواری که دکمه را به نمایش می گذارد، در ابتدا مخفی می باشد. دکمه برای عکس خود از یک drawable استفاده می کند.

 

<FrameLayout 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" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
</RelativeLayout>
<LinearLayout
android:id="@+id/undobar"
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|center_horizontal"
android:layout_margin="20dp"
android:alpha="100"
android:background="#808080"
android:dividerPadding="11dp"
android:padding="4dp" >
<TextView
android:id="@+id/undobar_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Deleted" android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#fff" />
<Button
android:id="@+id/undobar_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="30dp"
android:onClick="onClick"
android:background="#808080"
android:drawableLeft="@drawable/ic_undobar_undo"
android:text="Undo" android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#fff" />
</LinearLayout>
</FrameLayout>

 

کلاس activity را به صورت زیر ویرایش کنید. ویزارد پروژه خود یک المان ActionBar تولید می کند. این المان در کد زیر بکار گرفته شده است. در صورت تمایل می توانید ActionBar دلخواه خود را ایجاد کنید.

 

package com.vogella.android.userinterface.undo;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import com.vogella.android.actionbar.undo.R;
public class MainActivity extends Activity {
private View viewContainer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView l = (ListView) findViewById(R.id.listview);
String[] values = new String[] { "Ubuntu", "Android", "iPhone","Windows", "Ubuntu", "Android",
"iPhone", "Windows"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, values);
viewContainer = findViewById(R.id.undobar);
l.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
showUndo(viewContainer);
return true;
}
public void onClick(View view) {
Toast.makeText(this, "Deletion undone", Toast.LENGTH_LONG).show();
viewContainer.setVisibility(View.GONE);
}
public static void showUndo(final View viewContainer) {
viewContainer.setVisibility(View.VISIBLE);
viewContainer.setAlpha(1);
viewContainer.animate().alpha(0.4f).setDuration(5000)
.withEndAction(new Runnable() {
@Override
public void run() {viewContainer.setVisibility(View.GONE);
}
});
}
}


با انتخاب المان موجود در action bar ، نواری حامل دکمه ی Undo به مدت ۵ ثانیه نمایش داده می شود.

 

Undo

 


 

امیدواریم آموزش قابلیت لغو عملیات در اندروید استودیو نیز برای شما مفید واقع شده باشد و ادامه آموزش برنامه نویسی اندروید رو دنبال کنید . برای مطالعه پست‌ها بیشتر ، ما را در مدرسه کدنویسی تلگرام  و یا در تی جوان اینستاگرام دنبال کنید.

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟