PDA

View Full Version : دکمه بک در نوه‌گیشن دراور



sco1385
سه شنبه 24 تیر 1393, 23:02 عصر
دوستان!

من یک پروژه دارم که از نوه‌گیشن دراور استفاده می‌کنم.

خب. لیست را باز می‌کنم، و به یک فرگمنت می‌روم.

وقتی در یک فرگمنت هستم، و دکمه‌ی بک را می‌زنم، برنامه به جای اینکه به لیست بازشو از سمت چپ برگردد، از برنامه خارج می‌شود.

چه کار کنم که، با زدن دکمه بک، برنامه بسته نشود؟

لطفاً راهنمایی کنید.

Lulzsec
چهارشنبه 25 تیر 1393, 00:12 صبح
سوالتون مبهمه، به خاطره اینکه توضیح نداید که layoutتتون چطوری کار میکنه.
از ViewPager با فرگمنت استفاده میکنید ؟!

sco1385
چهارشنبه 25 تیر 1393, 12:18 عصر
این هم کد مین اکتیویتی :



package info.shandel.maghalat.shariati;


import java.io.File;
import java.util.ArrayList;


import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;


public class MainActivity extends Activity {
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ActionBarDrawerToggle mDrawerToggle;


// navigation drawer title
private CharSequence mDrawerTitle;


// used to store app title
private CharSequence mTitle;


// slide menu items
private String[] navMenuTitles;
private TypedArray navMenuIcons;


private ArrayList<NavDrawerItem> navDrawerItems;
private NavDrawerListAdapter adapter;

// ----------


@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


// ----------


mTitle = mDrawerTitle = getTitle();


// load slide menu items
navMenuTitles = getResources().getStringArray(R.array.nav_drawer_i tems);


// nav drawer icons from resources
navMenuIcons = getResources().obtainTypedArray(R.array.nav_drawer _icons);


mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

mDrawerList = (ListView) findViewById(R.id.List_Slidermenu);


navDrawerItems = new ArrayList<NavDrawerItem>();


// ----------


// adding nav drawer items to array
// 0
navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
// 1
navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
// 2
navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
// 3
navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1)));
// 4
navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1)));
// 5
navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons.getResourceId(5, -1)));
// 6
navDrawerItems.add(new NavDrawerItem(navMenuTitles[6], navMenuIcons.getResourceId(6, -1)));
// 7
navDrawerItems.add(new NavDrawerItem(navMenuTitles[7], navMenuIcons.getResourceId(7, -1)));
// 8
navDrawerItems.add(new NavDrawerItem(navMenuTitles[8], navMenuIcons.getResourceId(8, -1)));
// 9
navDrawerItems.add(new NavDrawerItem(navMenuTitles[9], navMenuIcons.getResourceId(9, -1)));
// 10
navDrawerItems.add(new NavDrawerItem(navMenuTitles[10], navMenuIcons.getResourceId(10, -1)));
// 11
navDrawerItems.add(new NavDrawerItem(navMenuTitles[11], navMenuIcons.getResourceId(11, -1)));
// 12
navDrawerItems.add(new NavDrawerItem(navMenuTitles[12], navMenuIcons.getResourceId(12, -1)));

// ----------

// Recycle the typed array
navMenuIcons.recycle();


mDrawerList.setOnItemClickListener(new SlideMenuClickListener());


// setting the nav drawer list adapter
adapter = new NavDrawerListAdapter(getApplicationContext(),
navDrawerItems);
mDrawerList.setAdapter(adapter);


// enabling action bar app icon and behaving it as toggle button
getActionBar().setDisplayHomeAsUpEnabled(true);
// getActionBar().setHomeButtonEnabled(true);


mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer, //nav menu toggle icon
R.string.app_name, // nav drawer open - description for accessibility
R.string.app_name // nav drawer close - description for accessibility
) {
public void onDrawerClosed(View view) {
getActionBar().setTitle(mTitle);
// calling onPrepareOptionsMenu() to show action bar icons
invalidateOptionsMenu();
}


public void onDrawerOpened(View drawerView) {
getActionBar().setTitle(mDrawerTitle);
// calling onPrepareOptionsMenu() to hide action bar icons
invalidateOptionsMenu();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);


if (savedInstanceState == null) {
// on first time display view for first nav item
displayView(0);
}

}// end of on create.


// ----------


/**
* Slide menu item click listener
* */
private class SlideMenuClickListener implements ListView.OnItemClickListener {

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

// display view for selected nav drawer item
displayView(position);
}
}

// ----------


@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}


// ----------


@Override
public boolean onOptionsItemSelected(MenuItem item) {

// toggle nav drawer on selecting action bar app icon/title
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}

// Handle action bar actions click
switch (item.getItemId()) {

// بازکردن فرگمنت برنامه
case R.id.Action_About:


FragmentManager myFragmentManager1 = getFragmentManager();
FragmentTransaction ft1 = myFragmentManager1.beginTransaction();
Fragment myFragment1 = new Barnameh();
ft1.replace(R.id.frame_container, myFragment1);
ft1.addToBackStack(null);
ft1.commit();
setTitle(getResources().getString(R.string.Action_ About));
return true;

// بازکردن فرگمنت هلپ
case R.id.Action_Help:


FragmentManager myFragmentManager2 = getFragmentManager();
FragmentTransaction ft2 = myFragmentManager2.beginTransaction();
Fragment myFragment2 = new Help();
ft2.replace(R.id.frame_container, myFragment2);
ft2.addToBackStack(null);
ft2.commit();
setTitle(getResources().getString(R.string.Action_ Help_Title));
return true;

// ارسال برنامه از طریق بلوتوث
case R.id.Action_Bluetooth:

try {

PackageManager pm = getPackageManager();
ApplicationInfo ai = pm.getApplicationInfo(getPackageName(), 0);
File srcFile = new File(ai.publicSourceDir);
Intent share = new Intent();
share.setAction(Intent.ACTION_SEND);
share.setType("application/vnd.android.package-archive");
share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(srcFile));
startActivity(Intent.createChooser(share, getResources().getString(R.string.Sending_App)));
} catch (Exception e) {
Log.e("ShareApp", e.getMessage());
}
return true;

// ارسال لینک دانلود برنامه جمله‌های شریعتی
case R.id.Action_Jomalat:

Intent myIntent_Jomalat = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=info.shandel.jomalat.shariati"));
startActivity(myIntent_Jomalat);
return true;

// ارسال لینک دانلود برنامه برای دیگران
case R.id.Action_DownloadLink:

Intent myIntent_SendingLink = new Intent(Intent.ACTION_SEND);
myIntent_SendingLink.setType("message/rfc822");
myIntent_SendingLink.putExtra(Intent.EXTRA_EMAIL, new String[]{""}); // recipients
myIntent_SendingLink.putExtra(Intent.EXTRA_SUBJECT , getResources().getString(R.string.Mail_Subject));
myIntent_SendingLink.putExtra(Intent.EXTRA_TEXT, getResources().getString(R.string.myMail_Body));

try {
startActivity(Intent.createChooser(myIntent_Sendin gLink, "Sending app link to..."));
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(MainActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}
return true;

default:
return super.onOptionsItemSelected(item);
}
}


// ----------


// Called when invalidateOptionsMenu() is triggered
@Override
public boolean onPrepareOptionsMenu(Menu menu) {

// if nav drawer is opened, hide the action items
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
menu.findItem(R.id.Action_About).setVisible(!drawe rOpen);
return super.onPrepareOptionsMenu(menu);
}


// ----------


// Diplaying fragment view for selected nav drawer list item
private void displayView(int position) {
// update the main content by replacing fragments
Fragment fragment = null;
switch (position) {
case 0:
fragment = new Entery();
break;
case 1:
fragment = new Shariati_hamfekran();
break;
case 2:
fragment = new Shariati_montaghedan();
break;
case 3:
fragment = new Shariati_mokhalefan();
break;
case 4:
fragment = new Shariati_digaran();
break;
case 5:
fragment = new Ehsan();
break;
case 6:
fragment = new Susan();
break;
case 7:
fragment = new Sara();
break;
case 8:
fragment = new Eshkevari();
break;
case 9:
fragment = new Alijani();
break;
case 10:
fragment = new Rahmani();
break;
case 11:
fragment = new Barnameh();
break;
case 12:
fragment = new Help();
break;
default:
break;
}


// ----------


if (fragment != null) {
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.fr ame_container, fragment).commit();


// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
}

// ----------


@Override
public void setTitle(CharSequence title) {
mTitle = title;
getActionBar().setTitle(mTitle);
}


/**
* When using the ActionBarDrawerToggle, you must call it during
* onPostCreate() and onConfigurationChanged()...
*/


@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle.syncState();
}


@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Pass any configuration change to the drawer toggles
mDrawerToggle.onConfigurationChanged(newConfig);
}


// ----------

// ایجاد متد اوپن برای باز کردن دراور با کلیک روی عکس بزرگ
public void open() {

if (mDrawerLayout.isDrawerOpen(Gravity.LEFT)) {

mDrawerLayout.closeDrawer(Gravity.LEFT);
} else {
mDrawerLayout.openDrawer(Gravity.LEFT);
}
}


// ----------




/*@Override
public void onBackPressed() {
if (index != 0) {
index = index - 1;
mDrawerLayout.setCurrentItem(index);
return;
}
super.onBackPressed();
}*/


// ----------

}

Arashx12
شنبه 28 تیر 1393, 16:55 عصر
:قهقهه::قهقهه::قهقهه::قهقهه:: هقهه::قهقهه::قهقهه::قهقهه::ق قهه::قهقهه::قهقهه::قهقهه::قه هه::قهقهه::قهقهه::قهقهه::قهق ه::قهقهه::قهقهه::قهقهه::قهقه ::قهقهه::قهقهه::لبخند::لبخند: :لبخند::لبخند::لبخند::لبخند:: بخند::لبخند::لبخند::لبخند::ل خند::لبخند::لبخند::لبخند::لب ندساده::لبخندساده::لبخندسا ه::لبخندساده::لبخندساده::لب ندساده::لبخندساده::لبخندسا ه:

sco1385
شنبه 28 تیر 1393, 22:38 عصر
گویا بی شعوری و بی فرهنگی در همه جا اپیدمی شده است!

فکر نمی‌کردم تا اینجا هم نفوذ کرده باشد!

واقعاً متاسفم.