2016-03-11 260 views
0

我需要将字符串传递给我在strings.xml中创建的具有字符串数组方法的java类。我创建了字符串,但不知道如何将它传递到数组Android:将xml中的字符串传递到字符串数组

的strings.xml

<string name = "bank"> 
    <b>Bank</b> 
</string> 

Facilityadapter.java

public String[] mThumbNames = { 
     getResources().getStringArray(R.string.bank), 
     "Hostel", 
     "GYM", 
     "Library", 
     "Sports", 
     "Guest House" 

}; 
+0

活动已经初始化之前,您无法访问getResources。您需要在您的onCreate方法运行后在/中插入银行字符串 –

+0

银行不是字符串数组资源,它是一个字符串资源。 – Roel

回答

1
public class FacilityAdapter extends BaseAdapter { 

    private String[] mThumbNames; 

    public FacilityAdapter(Context c){ 
     mThumbNames = new String[] {c.getString(R.string.bank), "Hostel", "GYM"}; 
    } 

    //... 

} 
0
getResources().getString(R.string.bank) 

,也就像biddulph.r说,这样做后onCreate方法

+0

我没有得到它 –

+0

对不起,我更新了答案 –

0

完整的代码是这样的

public class FacilityAdapter extends BaseAdapter { 
    private Context mContext; 


    // Keep all Images in array 
    public Integer[] mThumbIds = { 
      R.drawable.bank, R.drawable.girlshostel, 
      R.drawable.gym , R.drawable.library, 
      R.drawable.sports , R.drawable.guesthouse 

    }; 

    public String[] mThumbNames = new String[]{ 
      getResources().getStringArray(R.string.bank)[0], 
      "GirlsHostel", 
      "GYM", 
      "<u>Library</u>", 
      "Sports", 
      "Guest House" 

    }; 



    // Constructor 
    public FacilityAdapter(Context c){ 
     mContext = c; 
    } 

    @Override 
    public int getCount() { 
     return mThumbIds.length; 
    } 

    @Override 
    public Object getItem(int position) { 
     return mThumbIds[position]; 
    } 

    @Override 
    public long getItemId(int position) { 
     return 0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 

     View gridView; 
     gridView = new View(mContext); 



     ImageView imageView = new ImageView(mContext); 
     imageView.setImageResource(mThumbIds[position]); 
     imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
     imageView.setLayoutParams(new GridView.LayoutParams(300, 300)); 
     return imageView; 
    } 

}