ページ 11

Androidアプリでデータベース系のアプリを作っています

Posted: 2013年7月05日(金) 07:28
by 処刑人
androidでデータベース系のアプリを作っています。andorid に関しては始めたばかりです。javaの経験は2、3年です。
内容はページ名とURLをSQLiteで登録してListViewで表示し、一覧のページ名を押すとそれぞれのページに飛んでくれるブックマーカーのようなアプリです。

コード:

package com.example.mylist;

import com.example.mylist.R;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.text.SpannableStringBuilder;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;

public  class ListActivity extends Activity implements OnClickListener {
	
	ArrayAdapter<String> adapter;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		
		super.onCreate(savedInstanceState);
		
				
		setContentView(R.layout.list);
		
		PersonOpenHelper helper = new PersonOpenHelper(this);
		SQLiteDatabase db = helper.getReadableDatabase();
		
		
		ListView list = (ListView)findViewById(R.id.ListView);
		
		adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
		
		Cursor c = db.query("movie_table", new String[] { "title", "url" },
				null, null, null, null, null);
		
		
		boolean isEof = c.moveToFirst();
		
		
		
		while (isEof) {
			
			adapter.add(c.getString(0));
			isEof = c.moveToNext();
			

		}
		c.close();

		db.close();
		
		
		list.setAdapter(adapter);
	
	
		list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> parent, View view, int position, long id){
				ListView listView = (ListView)parent;
				Cursor item = (Cursor) listView.getItemAtPosition(position);
				Intent intent = new Intent(ListActivity.this, BrowserActivity.class);
				
				String url = item.getString(item.getColumnIndex("url"));
				
				
				intent.putExtra("URL",url);
		 
				startActivity(intent);
				item.close();
			}
		});

	}
	@Override
	public void onClick(View arg0) {
		// TODO Auto-generated method stub
		
	}
	

}

ここの無名クラスの中のonItemClickメソッドのCursor item = (Cursor) listView.getItemAtPosition(position);
の部分でNullPointerが起きてしまいます。なんとかして押したところにCursorがさすようにしたいです。
解決法がわかる方教えていただけないでしょうか?

Re: Androidアプリでデータベース系のアプリを作っています

Posted: 2013年7月05日(金) 14:42
by beatle
ListView listView = (ListView)parent;
のところで、parentがnullなのでは?
onCreateメソッドのローカル変数 list を代わりに使うのではないでしょうか。

Re: Androidアプリでデータベース系のアプリを作っています

Posted: 2013年7月05日(金) 21:00
by 処刑人
解決しました