[RESOLVIDO]Spinner chamar uma activity

4 respostas
P

O último item do spinner é “Incluir Novo”, ao clicar nesse item, estou tentando abrir uma nova Activity

Intent i = new Intent(this, AddBandeira.class); startActivity(i);

Mas não está dando certo, a intent está registrada no AndroidManifest

<activity android:name="AddBandeira"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>

Alguém sabe como resolver isso?

4 Respostas

Marky.Vasconcelos

Qual o erro?

P

Então ele não chega nem a rodar, ele pede pra eu remover os argumentos dessa linha:

Intent i = new Intent(this, AddBandeira.class);

Deve ser porque ele está dentro de um selectedlistener do spinner, porque se eu coloco essa linha fora desse evento ele não dá erro, aqui vai o código completo do evento

spnBandeiras.setOnItemSelectedListener(new OnItemSelectedListener()
{          
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int posicao, long id)
    {
        if(bandeiras.get(posicao).equals("Incluir Nova"))
        {
            Intent i = new Intent(this, AddBandeira.class);
            startActivity(i);
        }
    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {               
    }
});
Marky.Vasconcelos

Se ele é uma inner class o this referencia o objeto anonimo OnItemSelectedListener e o construtor precisa de uma Activity, se voce estiver dentro dela voce pode usar algo assim:

public class BandeiraActivity extends Activity {

//Resto dos metodos
spnBandeiras.setOnItemSelectedListener(new OnItemSelectedListener()
{          
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int posicao, long id)
    {
        if(bandeiras.get(posicao).equals("Incluir Nova"))
        {
            Intent i = new Intent(BandeiraActivity.this, AddBandeira.class);
            startActivity(i);
        }
    }

    @Override
    public void onNothingSelected(AdapterView<?> arg0) {               
    }
});
}

Assim voce referencia o this da classe de fora.

P

Obrigado Marky, funcionou

Criado 21 de julho de 2011
Ultima resposta 22 de jul. de 2011
Respostas 4
Participantes 2