2017-02-17 31 views
0

У меня есть одно меню слайдера, в котором мне нужно добавить прядильщик, чтобы он добавил выпадающий список, но его не работали, пожалуйста, предложите любое решение . Я создал один метод в этом метод, который я написал код спиннераКак добавить spinner в меню слайдера в android

package com.dfhrms; 

import android.app.Activity; 
import android.app.Fragment; 
import android.app.FragmentManager; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.content.res.Configuration; 
import android.content.res.TypedArray; 
import android.os.Bundle; 
import android.support.annotation.StyleableRes; 
import android.support.v4.app.ActionBarDrawerToggle; 
import android.support.v4.widget.DrawerLayout; 
import android.util.Log; 
import android.view.KeyEvent; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.FrameLayout; 
import android.widget.ListView; 
import android.widget.Spinner; 
import android.widget.Toast; 

import com.google.android.gms.auth.api.Auth; 
import com.google.android.gms.auth.api.signin.GoogleSignInOptions; 
import com.google.android.gms.common.api.GoogleApiClient; 
import com.google.android.gms.common.api.ResultCallback; 
import com.google.android.gms.common.api.Status; 

import java.util.ArrayList; 

import info.androidhive.slidingmenu.adapter.NavDrawerListAdapter; 
import info.androidhive.slidingmenu.model.NavDrawerItem; 

import static com.dfhrms.CommonUtilities.EXTRA_MESSAGE; 

    public class Slide_MainActivity extends Activity { 
     private DrawerLayout mDrawerLayout; 
     private ListView mDrawerList; 
    Spinner spinner; 
    private ActionBarDrawerToggle mDrawerToggle; 
    @StyleableRes 
    int index = 1; 
    String[] country = { "India", "USA", "China", "Japan", "Other", }; 
    // nav drawer title 
    private CharSequence mDrawerTitle; 
    private GoogleApiClient mGoogleApiClient; 
    // used to store app title 
    private CharSequence mTitle; 

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

    private ArrayList<NavDrawerItem> navDrawerItems; 
    private NavDrawerListAdapter adapter; 
    String username,pwd,manual; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.slide_activity_main); 
     SharedPreferences myprefs= getSharedPreferences("user",MODE_WORLD_READABLE); 
     //Toast.makeText(Instant.this,myprefs.getAll().toString(),Toast.LENGTH_LONG).show(); 
     username = myprefs.getString("user1", "nothing"); 
     manual = myprefs.getString("manual", "nothing"); 
     pwd = myprefs.getString("pwd", "nothing"); 
     spinner = (Spinner)findViewById(R.id.spinner); 

     mTitle = mDrawerTitle = getTitle(); 

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

     // 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 
     // Home 
     navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1))); 
     // Find People 
     navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(index, -1))); 
     // Photos 
     navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1))); 
     // Communities, Will add a counter here 
     // navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1), true, "22")); 
     // Pages 
     // navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1))); 
     // What's hot, We will add a counter here 
     // navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons.getResourceId(5, -1), true, "50+")); 


     // 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); 
     } 
    } 

    /** 
    * 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); 
      String country = parent.getItemAtPosition(position).toString(); 
     } 
    } 

    @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()) { 

      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 
    public void logOut() 
    { 
     // Toast.makeText(Home.this,"Hi",Toast.LENGTH_LONG).show(); 
     if(manual.equals("yes")) { 
      SharedPreferences settings = getSharedPreferences(username, 0); 
      SharedPreferences.Editor editor = settings.edit(); 
      editor.remove("logged"); 
      editor.commit(); 
      Intent intent = new Intent(this, 
        login.class); 
      intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
      startActivity(intent); 

      finish(); 
     } 
     else 
     { 
      if(manual.equals("no")) { 
       signOut(); 

      } 
     } 

    } 

    public void Hiring(){ 


     spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, 
             int position, long id) { 
       // TODO Auto-generated method stub 
       //String item = parent.getItemAtPosition(position).toString(); 
       displayView(2); 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> parent) { 
       // TODO Auto-generated method stub 

      } 
     }); 

     ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_item, country); 
     dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner.setAdapter(dataAdapter); 


    } 


    /* * 
    * Called when invalidateOptionsMenu() is triggered 
    */ 



    /** 
    * 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 FindPeopleFragment(); 
       break; 
      case 1: 
       // fragment = new PhotosFragment(); 

       logOut(); 
       break; 
      case 2: 
       setContentView(R.layout.fragment_photos); 
       //fragment = new PhotosFragment(); 
       Hiring(); 
       break; 
      case 3: 
       fragment = new CommunityFragment(); 
       break; 
      case 4: 
       fragment = new PagesFragment(); 
       break; 
      case 5: 
       fragment = new WhatsHotFragment(); 
       break; 

      default: 
       break; 
     } 

     if (fragment != null) { 
      FragmentManager fragmentManager = getFragmentManager(); 
      fragmentManager.beginTransaction() 
        .replace(R.id.frame_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 toggls 
     mDrawerToggle.onConfigurationChanged(newConfig); 
    } 

    private final BroadcastReceiver mHandleMessageReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      String newMessage = intent.getExtras().getString(EXTRA_MESSAGE); 
      // Waking up mobile if it is sleeping 

      /** 
      * Take appropriate action on this message 
      * depending upon your app requirement 
      * For now i am just displaying it on the screen 
      * */ 

      // Showing received message 
      // lblMessage.append(newMessage + "\n"); 
      Toast.makeText(getApplicationContext(), "New Message: " + newMessage, Toast.LENGTH_LONG).show(); 

     } 
    }; 
    private void signOut() { 
     Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
       new ResultCallback<Status>() { 
        @Override 
        public void onResult(Status status) { 
         Intent intent = new Intent(getApplicationContext(),login.class); 
         intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
         startActivity(intent); 
        } 
       }); 

    } 
    @Override 
    protected void onStart() { 
     GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
       .requestEmail() 
       .build(); 
     mGoogleApiClient = new GoogleApiClient.Builder(this) 
       .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
       .build(); 
     mGoogleApiClient.connect(); 
     super.onStart(); 
    } 

    public boolean onKeyDown(int keyCode, KeyEvent event) 
    { 
     return (keyCode == KeyEvent.KEYCODE_BACK ? true : super.onKeyDown(keyCode, event)); 
    } 


    @Override 
    protected void onDestroy() { 


     super.onDestroy(); 
    } 

} 
+0

Что не работает? Уточните его. – Piyush

+0

Когда я нажимаю на кнопку выпадающего меню К сожалению, остановлена ​​ошибка im get –

+0

Итак, есть журнал ошибок. Отправьте его. – Piyush

ответ

0

использовать это для изготовления кок

class AndroidSpinnerExampleActivity extends Activity implements OnItemSelectedListener{ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    // Spinner element 
    Spinner spinner = (Spinner) findViewById(R.id.spinner); 

    // Spinner click listener 
    spinner.setOnItemSelectedListener(this); 

    // Spinner Drop down elements 
    List<String> categories = new ArrayList<String>(); 
    categories.add("Automobile"); 
    categories.add("Business Services"); 
    categories.add("Computers"); 
    categories.add("Education"); 
    categories.add("Personal"); 
    categories.add("Travel"); 

    // Creating adapter for spinner 
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories); 

    // Drop down layout style - list view with radio button 
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

    // attaching data adapter to spinner 
    spinner.setAdapter(dataAdapter); 
} 

@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
    // On selecting a spinner item 
    String item = parent.getItemAtPosition(position).toString(); 

    // Showing selected spinner item 
    Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show(); 
} 
public void onNothingSelected(AdapterView<?> arg0) { 
    // TODO Auto-generated method stub 
} 
} 

более обратитесь this