【问题标题】:The method getSystemService(String) is undefined for the type TweetListAdaptor类型 TweetListAdaptor 的方法 getSystemService(String) 未定义
【发布时间】:2013-10-26 11:02:51
【问题描述】:

我的代码是..

class TweetListAdaptor extends ArrayAdapter<Tweet> {

    private ArrayList<Tweet> tweets;

    public TweetListAdaptor(Context context,
                                int textViewResourceId,
                                ArrayList<Tweet> items) {
             super(context, textViewResourceId, items);
             this.tweets = items;
    }


   // @Override
    public View getView(int position, View convertView, ViewGroup parent) {
            View v = convertView;
            if (v == null) {
                LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    v = vi.inflate(R.layout.list_tem, null);
            }
            Tweet o = tweets.get(position);
            TextView tt = (TextView) v.findViewById(R.id.toptext);
            TextView bt = (TextView) v.findViewById(R.id.bottomtext);
            tt.setText(o.content);
            bt.setText(o.author);

            return v;
    }

}

【问题讨论】:

    标签: android twitter android-listview adapter


    【解决方案1】:

    使用此代码:

    LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    

    而不是这个:

    LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    

    【讨论】:

      【解决方案2】:

      它不在活动中所以这样调用.. this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)

      和你的构造函数这样..

      private Context context;
      public TweetListAdaptor(Context context,
                              int textViewResourceId,
                              ArrayList<Tweet> items) {
           super(context, textViewResourceId, items);
           this.tweets = items;
           this.context=context;
      }
      

      【讨论】:

      • 无法从类型 Context 对非静态方法 getSystemService(String) 进行静态引用?
      【解决方案3】:

      试试这个代码

      class TweetListAdaptor extends ArrayAdapter<Tweet> {
      
      private ArrayList<Tweet> tweets;
       private Context context;
      
      public TweetListAdaptor(Context context,
                                  int textViewResourceId,
                                  ArrayList<Tweet> items) {
               super(context, textViewResourceId, items);
               this.tweets = items;
               this.context=context;
      }
      
      
       // @Override
      public View getView(int position, View convertView, ViewGroup parent) {
              View v = convertView;
              if (v == null) {
                  LayoutInflater vi=
              (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                      v = vi.inflate(R.layout.list_tem, null);
              }
              Tweet o = tweets.get(position);
              TextView tt = (TextView) v.findViewById(R.id.toptext);
              TextView bt = (TextView) v.findViewById(R.id.bottomtext);
              tt.setText(o.content);
              bt.setText(o.author);
      
              return v;
      }
      

      }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-01-10
        • 1970-01-01
        • 2020-11-17
        • 2015-07-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多