2014-07-10 44 views
0

我想初始化一个片段中的下拉列表。 我收到以下错误。构造函数ArrayAdapter(FragTasbeeh,int,String [])未定义 也可以解释如何在片段中使用活动类,因为一次只能扩展一个类。取而代之的在ArrayAdapter中使用微调错误的微调器是未定义的

ArrayAdapter <String> adapter = 
    new ArrayAdapter <String> (this, android.R.layout.simple_spinner_item, items); 

{ 
    public class FragTasbeeh extends Fragment { 

     ImageView ivIcon; 
     TextView tvItemName; 
     Button add; 
     int counter = 0; 


     public static final String IMAGE_RESOURCE_ID = "iconResourceID"; 
     public static final String ITEM_NAME = "itemName"; 


     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

      View view = inflater.inflate(R.layout.tasbeeh, container, false); 
      if (savedInstanceState == null) { 
       counter = 0; 
      } else { 
       counter = savedInstanceState.getInt("counter", 0); 
      } 

      return view; 

     } 


     @ 
     Override 
     public void onActivityCreated(Bundle savedInstanceState) { 
      // TODO Auto-generated method stub 
      super.onActivityCreated(savedInstanceState); 
      add = (Button) getActivity().findViewById(R.id.button1); 
      tvItemName = (TextView) getActivity().findViewById(R.id.textView1); 
      add.setOnClickListener(new View.OnClickListener() { 

       @ 
       Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        counter++; 
        tvItemName.setText(counter + ""); 
       } 
      }); 
     } 

     private Spinner spinner; 
     public static final String[] items = { 
      "1", "2", "3" 
     }; 

     @ 
     Override 
     public void onCreate(Bundle savedInstanceState) { 
      // TODO Auto-generated method stub 
      super.onCreate(savedInstanceState); 
      Spinner dropdown = (Spinner) getActivity().findViewById(R.id.spin); 
      String[] items = new String[] { 
       "1", "2", "three" 
      }; 
      ArrayAdapter <String> adapter = new ArrayAdapter <String> (this, android.R.layout.simple_spinner_item, items); 
      dropdown.setAdapter(adapter); 
     } 

    } 
} 

回答

0

尝试

ArrayAdapter <String> adapter = 
    new ArrayAdapter <String> (getActivity(), android.R.layout.simple_spinner_item, items); 
0

,而不是通过这个为

ArrayAdapter <String> adapter = new ArrayAdapter <String> (this, android.R.layout.simple_spinner_item, items); 

通this.getActivity(),如下

ArrayAdapter <String> adapter = new ArrayAdapter <String> (this.getActivity(), android.R.layout.simple_spinner_item, items); 
0

不要使用this作为ArrayAdapter的第一个参数。

这里this是你的片段FragTasbeeh

因此,这意味着 -

The constructor ArrayAdapter<String>(FragTasbeeh , int, String[]) is undefined. 

您需要使用以下ArrayAdapter -

公共ArrayAdapter(上下文的背景下,INT资源,T []对象)

参数

上下文当前上下文。

资源包含要在实例化视图时使用的TextView的布局文件的资源ID。

objects要在ListView中表示的对象。

只要改变行 -

ArrayAdapter<String> adapter = new ArrayAdapter <String> (getActivity(), 
    android.R.layout.simple_spinner_item, items); 

OR

ArrayAdapter<String> adapter = new ArrayAdapter< String>(this.getActivity(), 
    android.R.layout.simple_spinner_item, items);