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?
Então ele não chega nem a rodar, ele pede pra eu remover os argumentos dessa linha:
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
[code]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) {
}
});[/code]
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.
Obrigado Marky, funcionou