2010-04-23 35 views
5

Tôi là một tân binh cho android. Tôi đang nghĩ đến việc thực hiện một máy tính đơn giản trong android để có được một tổ chức của những điều cơ bản trong Android. Tôi muốn hiển thị bàn phím với các số và các phép toán và khi người dùng nhấn các phím, số tương ứng được hiển thị trong văn bản chỉnh sửa. Tôi đã thử sử dụng gettext() và cập nhật nội dung của văn bản chỉnh sửa nhưng nó chỉ hiển thị nội dung của nút nhấn. Ngoài ra làm cách nào để đọc nội dung của nút để thực hiện các phép toán trong mã? Bất kì sự trợ giúp nào đều được đánh giá cao.Android: Cách đặt nội dung của văn bản Chỉnh sửa từ nhấp chuột vào nút?

regards,

Primal

Trả lời

5

Điều trị caption của nút như dữ liệu thực tế là cái gì đó là thực tế khá nhiều chỉ có thể chấp nhận khi bạn đang làm các chữ số-nút trong một máy tính, vì vậy tôi don 't biết nếu điều đó giữ cho' cơ bản android ';)

Bất kể;

Bạn đang nói bạn muốn hiển thị số tương ứng, khi người dùng nhấn một phím (nút?). Và sau đó bạn nói getText chỉ cho bạn thấy nội dung của nút bấm ... Đó có phải là chính xác những gì bạn đang yêu cầu không? Bạn có thể cần phải cung cấp một chút mã và cho chúng tôi thấy những gì không hoạt động theo cách bạn dự định. Nhưng nếu một nút có văn bản '8', và bạn muốn coi đó như một tám trong hoạt động toán học, bạn cần phải phân tích nó:

Integer myNumber = Integer.parse(myButton.getText()); 

... mà tất nhiên sẽ ném một ngoại lệ nếu văn bản của myButton không giải quyết thành số nguyên.

EDIT, AS bình luận

Từ giải thích về vấn đề của bạn, bạn đã cung cấp trong nhận xét của bạn, vâng, setText() resets các văn bản hoàn toàn với giá trị nó được thông qua, nhưng bạn có thể sử dụng kết hợp đó và getText() nếu bạn chỉ muốn thêm một cái gì đó với giá trị hiện tại:

myEditText.setText(myEditText.getText() + " " + myButton.getText()); 
+0

Tôi không thể nghĩ ra bất kỳ ứng dụng nào khác: (Mọi đề xuất trong khía cạnh này cũng được chào đón :) getText() cung cấp cho tôi những gì tôi muốn. Vấn đề là tôi không biết làm thế nào để cư một EditText sử dụng nó. Phương pháp duy nhất tôi biết là setText() và nó làm mới nội dung của EditText khi mỗi lần nhấp vào nút. – primpap

+0

alright, xem cập nhật của tôi =) –

6

để thiết lập các nội dung của một EditText:

EditText text = (EditText) findViewById(R.id.your_text); 
text.setText("Display this text"); 

Thay vì cố gắng để kéo văn bản ra các nút của bạn và sử dụng nó như là một số nguyên, tôi sẽ chỉ cần thêm một người biết lắng nghe nhấp chuột để mỗi người "biết" giá trị của nút của nó:

Button button = (Button) findViewById(R.id.num_1); 
button.setOnClickListener(new View.OnClickListener() { 
    @Override public void onClick(View v) { 
     // Do something with the value of the button 
    } 
}); 
2

Để Đặt văn bản nút trong EditText:

EditText edittext=(EditText)findviewById(R.id.edittext); 
Button num1=(Button)findViewById(R.id.button_num1); 
Button num2=(Button)findviewById(R.id.button_num2); 
num1.setOnClickListener(new View.OnClickListener() { 
    @Override public void onClick(View v) { 
     edittext.append("1"); 
    } 
}); 
num1.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     edittext.append("2"); 
    } 
}); 

cho calcultaor đơn giản thấy here nó sẽ giúp bạn để tạo ra một máy tính trong android.

+2

Chào mừng bạn đến với Stack Overflow! Bạn có cân nhắc thêm một số câu chuyện để giải thích tại sao mã này hoạt động không, và điều gì làm cho nó trở thành câu trả lời cho câu hỏi? Lưu ý, ví dụ, làm thế nào các câu trả lời khác được đăng ở đây giải thích mã của họ? –

4

Hãy thử mã sau.

EditText x = (EditText)findviewbyid(R.id.abc); 

Không sử dụng x.setText(); thay vào đó, hãy sử dụng x.append(Your variable or value here). Thao tác này sẽ không xóa văn bản xuất phát từ nút trước đó.

+0

Phương pháp 'append (" ")' đã cứu mạng tôi! –

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