java - 表达式的类型必须是数组类型,但它解析为 long

标签 java android

我有一个问题,我寻找了一点,但我不明白为什么它是附加的......

如果有人可以帮助我。

public class Menu extends Activity
{
private SQLiteDatabase db;

private GridView grid;
private Button add;
private Button info;
private Button deco;

private String lab[];
private String id[];

protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.menu);

    grid = (GridView) findViewById(R.id.grid);
    add = (Button) findViewById(R.id.add_account);
    info = (Button) findViewById(R.id.info);
    deco = (Button) findViewById(R.id.deconnexion);

    add.setOnClickListener(add_listener);
    info.setOnClickListener(info_listener);
    deco.setOnClickListener(deco_listener);

    try
    {
        db = openOrCreateDatabase("TMP_TTTT_TLA", MODE_PRIVATE, null);
    }
    catch(SQLiteException e)
    {
        Toast.makeText(Menu.this, "Impossible d'avoir accès à la base de donnéee.", Toast.LENGTH_LONG).show();
    }

    Cursor c = db.rawQuery("SELECT a_id, a_name FROM Account", null);

    lab = new String[c.getCount()];
    id = new String[c.getCount()];
    int i = 0;

    if (c.getCount() != 0 )
    {
        if  (c.moveToFirst())
        {
            do
            {
                lab[i] = c.getString(c.getColumnIndex("a_name"));
                id[i] = c.getString(c.getColumnIndex("a_id"));
                i++;
            }
            while(c.moveToNext());
        }
    }

    c.close();

    grid.setAdapter(new Adapter_Menu(this, lab));
    grid.setOnItemClickListener(new OnItemClickListener()
    {
        public void onItemClick(AdapterView parent, View v, int position, long id)
        {
            Intent x = new Intent(Menu.this, Account_View.class);
            x.putExtra("Id", id[position]);
            startActivity(x);
        }
    });
}
}

问题来自这一行:

x.putExtra("Id", id[position]);

也就是说表达式的类型必须是数组类型,但它解析为long。

请帮助我。

最佳答案

问题是你有两个名为 id 的变量:

private String id[];

long id

onItemClick

只需将您的 onItemClickListener 更改为以下内容:

public void onItemClick(AdapterView parent, View v, int position, long anid) 
    {
        Intent x = new Intent(Menu.this, Account_View.class);
        x.putExtra("Id", id[position]);
        startActivity(x);
    }

请记下 onItemClick 最后一个参数的名称。

关于java - 表达式的类型必须是数组类型,但它解析为 long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17976715/

相关文章:

java - Playframework 临时表单验证已执行,但未按预期工作

android - MenuItem actionView 右对齐

android - android native 应用程序的默认 User-Agent 字符串是什么?

java - 按照惯例,我是否希望在我的 java 项目中使用 com 文件夹?

java - 为什么无法解析此 XML 文件?

java - 从模式生成 JAXB 绑定(bind)类的 Jackson 属性

Android 身份验证器在没有帐户时启动登录屏幕

android - 如何在 Android 的 Google map 上快速更新用户的位置?

android - 如何 : Provide notification to Android app whenever SQLite table updates

java - 使用 MongoDB Java 驱动程序组合多个数组进行查询