【问题标题】:getIntent error, doesnt get recognizedgetIntent 错误,无法识别
【发布时间】:2015-04-29 05:57:37
【问题描述】:

getIntent 没有得到认可,我做错了什么?

我收到此错误:

错误:找不到符号变量getIntent

PS:起初我得到这个错误找不到符号方法getIntent。

我的代码:

package com.example.r.app;

import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

import java.util.List;


public class MyAdapter extends ArrayAdapter<String> {

    int i=0;

    public MyAdapter(Context context, int resource, List<String> objects) {
        super(context, resource, objects);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = super.getView(position, convertView, parent);
        TextView textView = (TextView) view.findViewById(android.R.id.text1);

        Intent intent = getIntent;
        int[] barva = intent.getIntArrayExtra("barva");

        int[] bar = {1, 2, 3};

        if (position == i) {
            if (barva == bar){
                textView.setTextColor(0xffcc80);
            }
            else if (barva == bar){
                textView.setTextColor(0xa5d6a7);
            }
            else if (barva == bar){
                textView.setTextColor(0x80deea);
            }

        }
         return view;
    }

}

【问题讨论】:

    标签: android


    【解决方案1】:

    getIntent 是一种方法。在活动中尝试:

    Intent intent = getIntent();
    

    编辑:

    我并没有真正注意到您在适配器内。如果您的上下文与活动相关,则必须稍有不同:

    Intent intent = ((Activity) context).getIntent();
    

    【讨论】:

      【解决方案2】:

      错误:找不到符号变量getIntent

      首先,getIntent 是方法而不是变量,所以称它为:

      Intent intent = getIntent();
      

      其次,getIntent() 方法来自Activity 类而不是ArrayAdapter 类,因此该方法在扩展ArrayAdapter 的类中不可用。

      从 Activity 调用 getIntent() 方法,在其中创建 MyAdapter 的对象并将意图作为参数传递给构造函数。

      【讨论】:

      • 好的,我已经做到了,但是现在我得到了这个错误:非静态方法 getIntent() 不能从静态上下文中引用。我做错了什么?
      • 你是这个意思?意图意图 = Results.getIntent(); int[] barva = intent.getIntArrayExtra("barva");
      • 这是我调用它的地方,但它不在 onCreate..: Intent intent3 = new Intent(Game.this, MyAdapter.class); int [] barva2 = Arrays.copyOf(barva, g); intent3.putExtra("barva", barva2); startActivityForResult(intent3, 1);
      • 我怎样才能将数组 int 传递给 MyAdapter?
      • @Everlastinf: 显示将 MyAdapter 适配器添加到 ListView 的代码
      【解决方案3】:

      或者你可以写在你的类声明中:

      你的类的公共类名扩展了 AppCompatActivity {

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-13
        • 2013-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-13
        相关资源
        最近更新 更多