2012-01-02 38 views
6

Trong thư mục/res/values ​​của dự án android của tôi, tôi có chuỗi và được tham chiếu trong chế độ xem văn bản trong tệp xml của tôi, tôi muốn thay đổi chuỗi trong tệp java của mình.android (thay đổi chuỗi trong mã java)

Như bạn có thể thấy dưới đây trong mã tôi đã thực hiện một biến chuỗi và sau đó dưới đây tôi đã thiết lập những gì biến chuỗi được thiết lập, đó là nơi chuỗi được đặt. nơi tôi có "ở đây" đặt ra trong mã đó là nơi tôi muốn thay đổi thành chuỗi trong thư mục giá trị. nhưng tôi không biết mã để sử dụng để thiết lập nó.

Tôi chỉ có thể thay đổi văn bản trong chế độ xem văn bản từ tệp java của tôi, mà tôi biết cách thực hiện, nhưng đó là cách cũ và bộ cảnh báo nên tôi muốn sử dụng chuỗi là cách tốt nhất làm như vậy.

Với kiến ​​thức về thay đổi văn bản trong chế độ xem văn bản, tôi đã cơ bản đoán theo cách của mình ở giai đoạn này nhưng tôi không biết cách làm thêm bất kỳ ai có thể cho tôi một số lời khuyên về việc cần làm.

String string; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    counter = 0; 
    add = (Button) findViewById(R.id.badd); 
    sub = (Button) findViewById(R.id.bsub); 
    reset = (Button) findViewById(R.id.breset); 
    display = (TextView) findViewById(R.id.tvdisplay); 
    string = (String) getString(R.string.counter); 

    add.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
       ((///////////////here////////////////)) 
      counter++; 

     } 
    }); 
+0

Tôi đã xóa các tham chiếu đến nhật thực và thẻ eclipse khỏi câu hỏi này vì nó không liên quan. – Squonk

+1

Từ sự hiểu biết của tôi, những chuỗi đó có nghĩa là hằng số, vì vậy tôi không nghĩ rằng bạn sẽ có thể thay đổi chúng theo lập trình. Tôi vẫn còn mới để dev android mặc dù, do đó, không giữ tôi với điều đó. – Marcin

+0

@Marcin: Bạn hiểu ý tưởng - xem câu trả lời của tôi. – Squonk

Trả lời

2

Bạn đã nói với chúng tôi rất nhiều văn bản thay đổi, nhưng bạn không nói nội dung nên là gì. Tôi cũng cần đoán:

Tệp strings.xml nên được sử dụng cho các văn bản có thể thay đổi cho các ngôn ngữ khác nhau. Nếu bạn chỉ muốn thay đổi nội dung của một bộ đếm, bạn không nên làm điều đó thông qua strings.xml như các con số là phổ :)

Cố gắng đi với rằng:

display.setText(String.valueOf(counter)); 
+0

Cảm ơn bạn, yeah tôi đã viết tôi nhanh chóng vì vậy đã không lên đến một tiêu chuẩn tốt nhất một câu hỏi nhanh chóng nếu bạn không nhớ, điều này hoạt động tốt display.setText (String.valueOf (truy cập)); nhưng bạn sẽ chỉ sử dụng nó cho một giá trị hoặc một số và bạn sẽ sử dụng display.setText ("") cho các chữ cái hoặc một chuỗi? –

+0

Bằng cách nào đó tôi không nhận được vấn đề bạn có. String.xml chứa các hằng số, vì vậy bạn không thể thay đổi văn bản được lưu trữ ở đó. Nếu bạn muốn thay đổi văn bản thành một chuỗi cụ thể mà người dùng có thể cung cấp, bạn nên tạo văn bản như bàn phím và có nút cho mỗi chữ cái. Hơn gắn thêm chữ cái vào chuỗi được hiển thị ...chuỗi được lưu trữ chỉ nên là giá trị bắt đầu mặc định của bạn và không thể thay đổi khi chạy. Tôi bị mất một chút vì tôi không có được những gì bạn thực sự cần và muốn ... – WarrenFaith

+0

Xin lỗi tôi nhận được những gì bạn có ý nghĩa bây giờ, xin lỗi. –

0

Bạn sẽ muốn sử dụng phương pháp setText().

display.setText("text"); 
+0

Tôi đã thử "display.setText (" văn bản ");" Nó hoạt động nhưng chỉ cho biến hiển thị nó muốn thay đổi biến chuỗi. và "string.setText (" text ");" không hoạt động:/ –

+1

để thay đổi chuỗi có bạn vừa thử 'string =" hello world ";' sau đó 'display.setText (string);' –

+0

Đúng vậy, tôi phải sử dụng phương thức setText mà tôi đã có các bạn ở đây để giúp đỡ :) –

3

Bạn không thể sửa đổi văn bản được gán cho <string> phần tử của tệp /res/values/strings.xml khi chạy. Chúng là hằng số có hiệu quả như vậy final.

Bạn cũng không thể thay đổi tệp xml bố cục khi chạy. Nếu bạn đã tạo bố cục với một số TextView có thuộc tính android:text được đặt thành một chuỗi tài nguyên ban đầu, thì về cơ bản đó là giá trị 'ban đầu' và không thể thay đổi thành giá trị khác khi chạy.

+0

nhưng tôi đang thay đổi android: văn bản từ tệp java của tôi .. –

+0

bạn có chắc chắn điều đó đúng không? bạn có thể thay đổi bố cục xml khi chạy:/ –

+0

"nhưng tôi đang thay đổi android: văn bản từ tệp java của mình". - Không có bạn không phải là. Bạn đang sử dụng 'setText (...)' là một phương thức Java và không liên quan gì đến tệp sơ đồ bố trí XML. Thuộc tính 'android: text' được sử dụng bởi inflater layout khi bạn gọi' setContentView (R.layout.main) '. Bố cục tăng cường bố cục xử lý các phần tử giao diện người dùng XML như 'TextView'. Khi nó gặp một phần tử 'android: text', nó gọi' setText (...) 'chuyển vào văn bản từ thuộc tính đó. – Squonk

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