2014-09-22 15 views
5

Tôi có tên là AutoCompleteTextView cho biết tên địa điểm được lưu trữ trong cơ sở dữ liệu MySQL bằng cách gọi api, khi văn bản thay đổi, sử dụng onTextChanged. Phản hồi là mảng JSON với nhiều mục như place_name, id, location_key, query_type, request_type, v.v. (mỗi mục có mục đích khác nhau của riêng chúng). Tôi đã 3 trường EditText bị ẩn. Trên setOnItemClickListener, khi người dùng chọn tên địa điểm, tôi muốn 3 trường ẩn này được đặt giá trị tự động bằng location_key, query_type và request_type, vì tôi cần gửi cùng 3 giá trị với tên địa điểm để nhận kết quả yêu cầu từ api.Đặt giá trị của trường ẩn với dữ liệu tương ứng của mục được chọn từ AutoCompleteTextView

+1

Và vấn đề là gì? Bạn đã thử những gì và điều gì đã xảy ra? –

+0

Đăng một số mã bạn đã thử, để chúng tôi có thể cải thiện nó. –

+0

Tại sao bạn lưu trữ thông tin đó trong các trường ẩn thay vì chỉ biến thành viên lớp của Actvity/Fragment của bạn? – Siebe

Trả lời

-1

Đặt khả năng hiển thị của các trường này sẽ biến mất.

txtview.setVisibility(View.GONE); 

và khi bạn muốn làm cho họ nhìn thấy được sử dụng

txtPromo.setVisibility(View.VISIBLE); 
+0

Tôi không hỏi cách làm cho trường EditText bị ẩn, tôi hỏi cách điền các trường ẩn này với dữ liệu khác, tương ứng với mục đã chọn, khi người dùng chọn một mục từ chế độ xem tự động hoàn tất. – carefree

+1

Đây không phải là câu hỏi. EditTexts đã bị ẩn. –

0

Khi bạn click vào lĩnh vực PLACE_NAME, các EditTexts ẩn sẽ nhận được các giá trị bạn cần phải gửi đến cơ sở dữ liệu. Điều này có thể dễ dàng thu được bằng cách làm như sau:

textMessage.addTextChangedListener(new TextWatcher(){ 
    public void afterTextChanged(Editable s) { 
     if (textMessage == "//Name of place") { 
      editText1.setText "//whatever you need"; 
      editText2.setText "//whatever you need"; 
      editText3.setText "//whatever you need"; 
     } 
    } 
}); 

Ngoài ra, tôi sẽ sử dụng một spinner cho tên địa điểm và sẽ mã nó với một cái gì đó tương tự như sau:

@ Override public void onClick (View arg0) {

int range = spnDonate.getSelectedItemPosition(); 

    Donator_Name = tboxName.getText().toString(); 
    switch(range) { 
     case 0: 
      editText1.setText = "//whatever you need"; 
      editText2.setText = "//whatever you need"; 
      editText3.setText = "//whatever you need"; 
      break; 
     case 1: 
      editText1.setText = "//whatever you need"; 
      editText2.setText = "//whatever you need"; 
      editText3.setText = "//whatever you need"; 
      break; 
     case 2: 
      editText1.setText = "//whatever you need"; 
      editText2.setText = "//whatever you need"; 
      editText3.setText = "//whatever you need"; 
      break; 
    } 
} 

Hope this helps :)

+0

Câu trả lời này có giúp ích cho bạn không? –

+0

Không, tôi đã kết thúc bằng cách sử dụng AutoCompleteTextView tùy chỉnh và đặt giá trị tương ứng – carefree

+0

@carefree bạn có thể cho biết cách bạn đã làm điều đó không? trả lời câu hỏi của chính mình plz :) – Abhigyan

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