java - 如何在我的 Android 应用程序中使用 onItemClick?

标签 java android sqlite listview onitemclick

嗨,我的 Android 应用程序中的 onItemClick 遇到问题。我尝试了一下,但出现错误。我希望在 ListView 中从 sqlite 数据库获取数据,并且可以单击此列表中的某个值以使用该值启动其他 Activity 。请参阅我的代码以获取更多信息:

我的 Activity :

public class ShowActivity extends ListActivity {

我的方法:

private void ladeDaten() {
        Cursor KlassenCursor = mDatenbank.rawQuery(KLASSEN_SELECT_ROW, null); 
        startManagingCursor(KlassenCursor); 

        android.widget.SimpleCursorAdapter KlassenAdapter = new android.widget.SimpleCursorAdapter(this,
                android.R.layout.simple_list_item_1, 
                KlassenCursor, 
                new String[] {"name"},
                new int[] {
                android.R.id.text1
                });

        setListAdapter(KlassenAdapter);

        ListView lv = (ListView)findViewById(android.R.id.list); 

        lv.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> parent,View view,int position,long id){

                Cursor cursor = (Cursor)parent.getItemAtPosition(position);

                String item = cursor.getString(cursor.getColumnIndex("name"));

                Intent intent = new Intent(this,ShowActivity.class); //here is the error

                intent.putExtra("iteid", item); 

                startActivity(intent);
            }
        });

    }

我的布局: ...

    </ListView>

...

我的错误:

The constructor Intent(new AdapterView.OnItemClickListener(){}, Class<ShowActivity>) is undefined

我能做什么? :(

更新:

public void onItemClick(AdapterView<?> parent,View view,int position,long id){

                Cursor cursor = (Cursor)parent.getItemAtPosition(position);

                String item = cursor.getString(cursor.getColumnIndex("name"));

                Intent intent = new Intent(ShowDayActitiy,ShowDayActivity.class); //here is the error

                intent.putExtra("iteid", item); 

                startActivity(intent);
            }
        });

我想开始一项其他 Activity :(

最佳答案

发生这种情况是因为当您创建 Intent 时,第一个参数是上下文。您正在从 onClick() 创建 Intent ,因此其中的上下文不是外部 Activity 的上下文。 Intent 应该将当前 Activity 的上下文作为第一个参数

因此使用 ShowActivity.thisgetApplicationContext() 而不是使用 this

Intent intent = new Intent(getApplicationContext(), SecondActivity.class)

Intent intent = new Intent(FirstActivity.this, SecondActivity.class)

就可以了。

如有任何疑问,请随时提出

关于java - 如何在我的 Android 应用程序中使用 onItemClick?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14479897/

相关文章:

php - 如何关闭使用 OOP 方法打开的 SQLite 数据库?

java - 如何在使用 SAX parcer 解析给定的 xml 文件时存储每一行

java - 使用类型推断时,Tomcat 8.5.27 编译失败,JSP 页面出现错误 'illegal start of type'

java - 如何在 Facebook 受众网络插页式广告中设置点击计数器?

java - 使用 sqlite 将字符串读入数据库

java - 在 SQLCipher 中设置密码

java - 我可以通过spring-roo中的xx.java修改xx_Roo_JavaBean.aj中的setter getter吗?

java - 当一项 future 任务有预期结果时继续

android - ImageButton 的选定状态

android - 将布局中textview中的文本动态设置为header Layout