2012-05-10 8 views
14

Dưới đây là đoạn code mà tôi đã thực hiện để lấy item mảng chuỗi:Android - lấy chuỗi mảng từ nguồn

String[] menuArray; 

@Override 
public void onCreate(Bundle savedInstanceState) 
{  
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    ScrollView sv = new ScrollView(this); 
    LinearLayout ll = new LinearLayout(this); 
    ll.setOrientation(LinearLayout.VERTICAL); 
    sv.addView(ll); 

// Create an ArrayAdapter that will contain all list items 
    ArrayAdapter<String> adapter; 

    menuArray = getResources().getStringArray(R.array.menu); 


    for(int i = 0; i < menuArray.length; i++) 
    { 
     Button b = new Button(this); 
     b.setText(menuArray[i]); 
     ll.addView(b); 
    } 

    this.setContentView(sv); 
} 

Đây là file strings.xml:

<string-array name="menu"> 
     <item>1</item> 
     <item>2</item> 
     <item>3</item> 
     </string-array> 

Tuy nhiên, R.array.menu có vấn đề này để biên dịch: Kể từ ADT 14, trường tài nguyên không thể được sử dụng làm trường hợp chuyển đổi. Gọi bản sửa lỗi này để biết thêm thông tin.

+0

Yeah, tôi có thể cung cấp cho bạn ảnh chụp từ giả lập nếu bạn muốn xem. Tôi chỉ bỏ qua việc sử dụng biến ** x ** cùng với thử khối catch theo định nghĩa ** count() ** không được cung cấp. –

+0

Bạn có đang sử dụng các nút chuyển với id tài nguyên không? kiểm tra [This] (http://stackoverflow.com/questions/8387777/what-is-migrate-android-code) –

+0

tôi giải quyết nó d .. nó chỉ là vì tôi di chuyển ra app_name từ strings.xml LOL –

Trả lời

4
for(int i = 0;i<menuArray.length; i++) 
{ 
    Button b = new Button(this); 
    b.setText(menuArray[i]); 
    ll.addView(b); 
} 

Xóa tuyên bố dưới đây

try { 
     x = count(); 
    } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 

và cố gắng cung cấp cho chiều cao và chiều rộng bố trí cho tất cả các Layouts ..

+0

tôi đã cập nhật mã ở trên. Nhưng vẫn có cùng một vấn đề cho R.array.menu. –

+0

Hãy arrays.xml riêng biệt và mất mảng chuỗi t đầu tiên thứ hai thứ ba thứ tư thứ năm đây – c2dm

5

Làm thế nào để lấy một mảng chuỗi từ nguồn:

mảng .xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 

    <string-array name="my_string_array"> 
     <item>one</item> 
     <item>two</item> 
     <item>three</item> 
    </string-array> 

</resources> 

String[] stringArray = getResources().getStringArray(R.array.my_string_array); 

(OP đã có câu hỏi của họ đã trả lời nhưng dựa trên tiêu đề câu hỏi, những người khác có thể đến đây tìm kiếm câu trả lời này.)