Skocz do zawartości
mK.

Sczytywanie aktualnej pozycji Spinnera

    Rekomendowane odpowiedzi

    mK.

    Mam dwie oddzielne funkcje i chciałbym argument z funkcji A wykorzystać w funkcji B. Referencja załatwi sprawę?

    Próbowałem dać ten sam argument z A do B ale aplikacja crashuje się.

    SpinnerActivity.java

    public class SpinnerActivity extends Activity implements OnItemSelectedListener {
    
       public void onItemSelected(AdapterView<?> parent, View view, 
               int pos, long id) {
       }
    
       public void onNothingSelected(AdapterView<?> parent) {
           // Another interface callback
       }
    }

    MainActivity.java

    public void Zdarzenie (View widok)
    {
    switch(pos)
    
    }
       {

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    marekF

    tak z palca

    Co to jest?

    public void Zdarzenie ([color="#FF0000"]View widok[/color])
    {
    switch(pos)
    
    }
       {
    

    Przekaz jej pos.

    public void onItemSelected(AdapterView<?> parent, View view, 
               int pos, long id) {
             zdarzenie(pos)
       }
    
    

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    mK.

    Parametr View o nazwie widok, bez której button by nie działał. :)

    Takie przekazanie nie działa. Gdy mam oddzielne Activity to:

    The method Zdarzenie2(int) is undefined for the type SpinnerActivity

    A jak te dwie funkcje są w jednym Activity to:

    The method Zdarzenie2(View, int) in the type MainActivity is not applicable for the arguments (int)
    

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Dzakus

    Nie zrozumiałem do końca co chcesz zrobić, bo jedynie rzuciłeś nie trzymającymi się całości dwoma fragmentami kodu, ale jeśli chcesz odczytać aktualnie wybrany element to masz takie metody jak:

    Object	 getSelectedItem()
    long	 getSelectedItemId()
    int	 getSelectedItemPosition()
    abstract View	 getSelectedView()

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    mK.

    Ok już sobie poradziłem ale kolejny problem:

    zmienna pos przyjmuje ciągle wartość 0 pomimo zmiany pozycji spinnera.

     private int odczyt;
        public void onItemSelected(AdapterView<?> parent, View view, 
                int pos, long id) {
        	odczyt = pos;
        }
    
        public void onNothingSelected(AdapterView<?> parent) {
        }
    public void Zdarzenie2 (View widok)
       {
           else
           {	
           	switch(odczyt)
           			{
               case 0:
           			Toast.makeText(this, "0", Toast.LENGTH_SHORT).show();
           			break;
           	case 1:
           		Toast.makeText(this, "1", Toast.LENGTH_SHORT).show();
           		break;
           	case 2:
           		Toast.makeText(this, "3", Toast.LENGTH_SHORT).show();
           		break;
           			}

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    marekF
    Parametr View o nazwie widok, bez której button by nie działał. :)

    Takie przekazanie nie działa. Gdy mam oddzielne Activity to:

    The method Zdarzenie2(int) is undefined for the type SpinnerActivity

    A jak te dwie funkcje są w jednym Activity to:

    The method Zdarzenie2(View, int) in the type MainActivity is not applicable for the arguments (int)
    

    Wiem co chcesz zrobic, ale:

    - w 1 poscie nic nie pisales o buttonie

    Spinery mam dobrze opanowane, moge miec ich z 10 w activity i potrafie z kazdego pobrac pos, stad moja odpowiedz.

    Jezeli chodzi o button(o ktorym nie napisalec) to mozesz zrobic klase

    public class nazwa_klasy extends Activity implements OnClickListener, OnItemSelectedListener
    

    i wtedy masz zdarzenia z buttona i z listy(spinera)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    marekF
    Napisano (edytowane)

    To po kolei.

    W jednym activity mam spiner i button. Spiner wypelniam sobie z bazy arraylist.

    Klasa.

    public class Diebold extends Activity implements OnClickListener, OnItemSelectedListener{
    Button btSearch1;
    Spinner spM;
    int position
    .
    .
    

    W on Create

    .
    .
    btSearch1.setOnClickListener(this);
    spM.setOnItemSelectedListener(this);
    .
    .
    

    Odczyt ze spinera

    @Override
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
    		long arg3) {
    //odczytuje wartosc
    miasto = spM.getSelectedItem().toString();
    //odczytuje pozycje
    position = spM.getSelectedItemPosition();
    .
    .
    

    I dla buttona

    @Override
    public void onClick(View v) {
    	// TODO Auto-generated method stub
    	switch(v.getId()){
    	case(R.id.btSearch1):
    //tutaj widzisz i position i wartosc (miasto)
    
    

    A gdybys chcial od razu wybierac od pozycji to

    @Override
    public void onItemSelected(AdapterView<?> arg0, View arg1, int pos,
    		long arg3) {
    	// TODO Auto-generated method stub
    	int position = spM.getSelectedItemPosition();
    	//Toast.makeText(getApplicationContext(), "rodzaj " + position, Toast.LENGTH_SHORT).show();
    	switch (position){
    	case 0:
    		r1=0;
    		break;
    	case 1:
    		r1=4;
    		break;
    .
    .
    

    Edytowane przez marekF

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    mK.

    Apk crashuje się po uruchomieniu przez:

    button.setOnClickListener(this);

    spM.setOnItemSelectedListener(this);

    	protected void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
    	setContentView(R.layout.activity_main);
    
    	// Set up the action bar.
    	final ActionBar actionBar = getSupportActionBar();
    	actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    
    	// Create the adapter that will return a fragment for each of the three
    	// primary sections of the activity.
    	mSectionsPagerAdapter = new SectionsPagerAdapter(
    			getSupportFragmentManager());
    
    	// Set up the ViewPager with the sections adapter.
    	mViewPager = (ViewPager) findViewById(R.id.pager);
    	mViewPager.setAdapter(mSectionsPagerAdapter);
    
    	// When swiping between different sections, select the corresponding
    	// tab. We can also use ActionBar.Tab#select() to do this if we have
    	// a reference to the Tab.
    	mViewPager
    			.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
    				@Override
    				public void onPageSelected(int position) {
    					actionBar.setSelectedNavigationItem(position);
    				}
    			});
    
    	// For each of the sections in the app, add a tab to the action bar.
    	for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
    		// Create a tab with text corresponding to the page title defined by
    		// the adapter. Also specify this Activity object, which implements
    		// the TabListener interface, as the callback (listener) for when
    		// this tab is selected.
    		actionBar.addTab(actionBar.newTab()
    				.setText(mSectionsPagerAdapter.getPageTitle(i))
    				.setTabListener(this));
    	}
    	button.setOnClickListener(this);
    	spM.setOnItemSelectedListener(this);
    }

    Jak wrócę to sprawdzę jeszcze doszczętnie Debugerem.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Dzakus

    Musisz gdzieś złapać te widoki. Na razie te zmienne są puste kompletnie, więc żadnej metody nie mogą wykonać.

    Mam namyśli kod podobny do

    		mButton = (Button) findViewById(R.id.button);

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.