【问题标题】:error: no suitable constructor found for ArrayAdapter(Tab1Fragment,int,ArrayList<String>)错误:没有找到适合 ArrayAdapter(Tab1Fragment,int,ArrayList<String>) 的构造函数
【发布时间】:2018-12-16 05:40:56
【问题描述】:

我是编程新手,一直在尝试将列表视图 + arrayadapter 添加到学校项目的片段中。已经提到了这个问题,但没有用。 https://stackoverflow.com/questions/32350275/no-suitable-constructor-found-for-arrayadaptermainlistactivity-getblogpoststask#=

package com.tabian.tabfragments;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;    
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
import android.widget.Button;


public class Tab1Fragment extends Fragment {
private static final String TAG = "Tab1Fragment";

private ListView listOfLeagues;
final ArrayList<String> listItems = new ArrayList<String>();

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.tab1_fragment,container,false);
    listOfLeagues = (ListView) view.findViewById(R.id.listOfLeagues);

    String[] values = new String[] { "World Cup", "Champions League" };

    for(int i = 0; i < values.length; i++){
        listItems.add(values[i]);
    }

    ArrayAdapter adapter = new ArrayAdapter<(Tab1Fragment.this,
            android.R.layout.simple_list_item_1, listItems);
    listOfLeagues.setAdapter(adapter);

    listOfLeagues.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String selectedLeague = listItems.get(position).toString();

            Intent titleIntent = new Intent(view.getContext(), abc.class);

            titleIntent.putExtra("league", selectedLeague);
            startActivity(titleIntent);
        }
    });

    return view;
}

}

【问题讨论】:

    标签: java android android-studio android-fragments android-arrayadapter


    【解决方案1】:

    ArrayAdapter 构造函数的第一个参数应该是Context,但您传递的是Fragment,即Tab1Fragment.this

    在其生命周期中处于附加状态的Fragment 中,您可以通过getContext() 获得Context。因此,将Tab1Fragment.this 替换为getContext()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-07
      相关资源
      最近更新 更多