0
ContentProviderを使用してListviewにデータを入力しています。一方、OnItemClickListener()メソッドをクリックすると、 "java.lang.stringにContentResolverをキャストできません"というエラーが表示されます。以下のアクティビティクラスに関するコードがあります。 OnItemClickListenerメソッドが正しく動作するように、コードをどのように変更できますか?OnItemClickListenerメソッドの文字列エラーにContentResolverをキャストできません
public class MainActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<Cursor> {
private ListView alarmlv;
DBHelper mydb;
private static final String PROVIDER_NAME = "com.domain.app.alarms";
private static final Uri CONTENT_URI = Uri.parse("content://" + PROVIDER_NAME + "/alarms");
SimpleCursorAdapter dataAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mydb = new DBHelper(this);
Cursor cursor = getContentResolver().query(CONTENT_URI, null, null, null, "name");
alarmlv = (ListView)findViewById(R.id.listViewAlarms);
dataAdapter = new SimpleCursorAdapter(getBaseContext(), R.layout.listview_row, cursor,
new String[]{ mydb.ALARMS_COLUMN_NAME }, new int[]{R.id.alarm_name}, 0);
alarmlv.setAdapter(dataAdapter);
getSupportLoaderManager().initLoader(0, null, this);
alarmlv.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
//obj.getItemAtPosition(arg2);
// TODO Auto-generated method stub
String itemVal =(String) arg0.getItemAtPosition(arg2);
Bundle dataBundle = new Bundle();
dataBundle.putString("name", itemVal);
Intent intent = new
Intent(getApplicationContext(),DisplayAlarm.class);
intent.putExtras(dataBundle);
startActivity(intent);
}
});
}
ありがとうございます。
ジョセフ
@pskink編集済み。 –
ありがとうナビン!あなたのソリューションは完璧に動作します。 – JF0001
@ JF0001うれしかったです。 –