2012-05-10 29 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.)

Các vấn đề liên quan