Erro ao chamar uma Activity a partir de um botão

Preciso chamar uma Activity qnd clico em um botão, essa acivity contém um listView q é alimentado a partir de um cursor. Segue o código:

chamando a activity no clique do botão:

 btnListar.setOnClickListener(new View.OnClickListener() {
    	    		
		public void onClick(View v) {
			
			//setContentView(R.layout.consulta_linha_tabela);
			Intent i = new Intent(v.getContext(), Registros.class); 
			startActivity(i);
				
		}
	});
         
    }

Activity q será chamada:

public class Registros extends Activity {
	
	private DbAdapter db;
	
	Cursor cursor;
	
	String [] itens = null;
	
	SimpleCursorAdapter adapterLista;
	
	ListView lista;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.consulta_linha_tabela);
		
		listar();
	}

	private void listar() {
		db.open();
		lista = (ListView) findViewById(R.id.list);
		
		String nome = "";
		String codigo = "";
		
		List<String> lista1 = new ArrayList<String>();
		
		while (cursor.moveToNext()){
		nome = cursor.getString(cursor.getColumnIndex(DbAdapter.COLUNA_NOME));
		codigo = cursor.getString(cursor.getColumnIndex(DbAdapter.COLUNA_CODIGO));
		lista1.add(nome+"\n"+codigo);
		}
		
		itens = (String []) lista1.toArray(new String [0]);
		
		ArrayAdapter<String> ad = new ArrayAdapter<String>(this, R.layout.consulta_linha_tabela, itens);
		
		lista.setAdapter(ad);
		db.close();
		
	}

xml da nova activity:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent" android:layout_height="wrap_content">
	
    <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >
    </ListView>

	    <TextView
        android:id="@+id/linha1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
 
        <TextView
        android:id="@+id/linha2"
        android:padding="5sp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
      
</LinearLayout>

android manifest:

        <activity
            android:name=".Registros"
            android:label="List View" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />

                
            </intent-filter>
        </activity>

e dá esse erro aqui:

Alguém sabe como resolver esse problema??

Tenta Cololocar ao invés de

      Intent i = new Intent(v.getContext(), Registros.class);

tenta colocar o activity atual exemplo:

      Intent i = new Intent(ActivityAtual.this, Registros.class);
      //ou
      Intent i = new Intent(ActivityMain.this, Registros.class);
     //Trocando ActivityMain.this pelo Activity Atual.

Na pratica o isso tambem serve para fazer comunicação entre activitys

Caso não funcione tem alguns exemplos em:
http://yuriadamsmaia.wordpress.com/2011/03/27/desenvolver-para-android-chamando-activitys/

Bom eduardovs, muito obrigado pela ajuda, mas não funcionou…
continua dando o mesmo erro, eu já não sei mais o que fazer!

[quote=thamiris.ramos]Bom eduardovs, muito obrigado pela ajuda, mas não funcionou…
continua dando o mesmo erro, eu já não sei mais o que fazer![/quote]

Oi,

Com certeza está faltando algo em seu AndroidManifest.xml

Poderia posta-lo por completo?

Tchauzin!

Faz assim:
db = new DbAdapter(…);
antes do db.open(),

Eu fiz e continua dando NullPointerException…

Segue o AndroindManifest.xml completo…

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="br.android.consulta"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="10" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:icon="@drawable/ic_app"
        android:label="@string/app_name" >
        <activity
            android:name=".BuscadorSedex1Activity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
        
        <activity
            android:name=".Pesquisa"
            android:label="pesquisa" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />

                <data android:scheme="http" />
            </intent-filter>
            
        </activity>
        <activity android:name=".Registros" android:label="Registros">
        		 <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
            
        </activity>
    </application>

</manifest>

Posta o logCat completo, por favor

Bem, as activities que eu declaro no manifest só tem o nome:

Achei meio estranho também ter um ponto no nome da activity no manifest, tira ele e veja o que acontece. Deixe ele o mais simples e tente executar.

Oi,

Tenta assim:

[code]

<?xml version="1.0" encoding="utf-8"?>

<uses-sdk android:minSdkVersion="7" />

<application
    android:icon="@drawable/ic_app"
    android:label="@string/app_name" >
    <activity
        android:name="br.android.consulta.BuscadorSedex1Activity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="br.android.consulta.Pesquisa"
        android:label="pesquisa" >
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="http" />
        </intent-filter>            
    </activity>
    <activity android:name="br.android.consulta.Registros"
	 android:label="Registros">
    	 <action android:name="android.intent.action.VIEW" />
             <category android:name="android.intent.category.DEFAULT" />           
    </activity>
</application>
<uses-permission android:name="android.permission.INTERNET" />

[/code]

Tchauzin!

[quote=thamiris.ramos][quote]
Faz assim:
db = new DbAdapter(…);
antes do db.open(),
[/quote]

Eu fiz e continua dando NullPointerException…[/quote]

Seu NullPointer só poder ser a variavel db até onde posso ver.

Poste o erro completo e atualizado.

PS: Use ListActivity posteriormente…

[quote=soaresinfo]…
Achei meio estranho também ter um ponto no nome da activity no manifest, tira ele e veja o que acontece. Deixe ele o mais simples e tente executar…
[/quote]

O Ponto (.) é devido conter o package no manifest.

Desculpe por tantos posts, alias não acredito que seja o Manisfest, me parece que a outra variavel não inicializada

A “cursor”

while (cursor.moveToNext()){

Oi, na minha aplicação eu fiz dessa forma…

public void chamatela(){ startActivity(new Intent(NOME DA ACTIVITY QUE VC ESTA.this, Registros.class)); }

e depois vc pode chamar o proocedimento pelo botão

btnListar.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { chamatela(); } });

Espero ter ajudado. ,/

Pelo que eu entedi a classe registro não é a principal, certo ? Mas no android manifest, ela esta definida como uma:

[code]

    <category android:name="android.intent.category.DEFAULT" />  

      
</intent-filter>  

[/code]

Isso é errado, o correto seria:

<activity android:name=".Registros" android:label="List View" />

[quote=thamiris.ramos]Preciso chamar uma Activity qnd clico em um botão, essa acivity contém um listView q é alimentado a partir de um cursor. Segue o código:

chamando a activity no clique do botão:

 btnListar.setOnClickListener(new View.OnClickListener() {
    	    		
		public void onClick(View v) {
			
			//setContentView(R.layout.consulta_linha_tabela);
			Intent i = new Intent(v.getContext(), Registros.class); 
			startActivity(i);
				
		}
	});
         
    }

Activity q será chamada:

public class Registros extends Activity {
	
	private DbAdapter db;
	
	Cursor cursor;
	
	String [] itens = null;
	
	SimpleCursorAdapter adapterLista;
	
	ListView lista;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.consulta_linha_tabela);
		
		listar();
	}

	private void listar() {
		db.open();
		lista = (ListView) findViewById(R.id.list);
		
		String nome = "";
		String codigo = "";
		
		List<String> lista1 = new ArrayList<String>();
		
		while (cursor.moveToNext()){
		nome = cursor.getString(cursor.getColumnIndex(DbAdapter.COLUNA_NOME));
		codigo = cursor.getString(cursor.getColumnIndex(DbAdapter.COLUNA_CODIGO));
		lista1.add(nome+"\n"+codigo);
		}
		
		itens = (String []) lista1.toArray(new String [0]);
		
		ArrayAdapter<String> ad = new ArrayAdapter<String>(this, R.layout.consulta_linha_tabela, itens);
		
		lista.setAdapter(ad);
		db.close();
		
	}

xml da nova activity:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent" android:layout_height="wrap_content">
	
    <ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" >
    </ListView>

	    <TextView
        android:id="@+id/linha1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
 
        <TextView
        android:id="@+id/linha2"
        android:padding="5sp"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
      
</LinearLayout>

android manifest:

        <activity
            android:name=".Registros"
            android:label="List View" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />

                
            </intent-filter>
        </activity>

e dá esse erro aqui:

Alguém sabe como resolver esse problema??[/quote]

Você ja olhou se o ação esta sendo declarada


Button botao = (Button) findViewById(R.id.NOME_DO_SEU_BOTÃO);
botao.setOnClickListener(this);

tenta marcar um breakpoint lá no metodo listar() na primeira linha db.open, e vai debugando pra ver em qual linha que ele pára e dá o erro…