2013-06-03 1 views
0

사용자가 환자를 검색 할 수있는 응용 프로그램을 만들고 있습니다. 사용자가 환자를 검색하면 결과가 목록보기로 표시됩니다. 그러나 문제는 응용 프로그램의 아래 스크린 샷에서 볼 수 있듯이 사용자가 제대로 볼 수있을 정도로 결과가 밝지 않다는 것입니다 (환자 검색 버튼 아래에 결과는 1234567890, abc, xyz로 표시됨). 철저하게 참조하십시오.) 내가 제대로 밝게 만드는 방법을 알고하지 않습니다ListView의 Listitem이 밝지 않다.

Search patient screen

. 같은 문제가 실제 Android 기기에도 나타납니다. 누군가 나를 도울 수 있습니다.

다음

내 코드입니다 : -

SearchPatient.java

public class SearchPatient extends Activity implements PacketListener, OnItemClickListener, TextWatcher 
{ 
private EditText mobileNumber; 
private EditText firstName; 
private EditText lastName; 
private ListView patients; 
private ArrayAdapter<String> adapter; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.search_patient); 
    mobileNumber = (EditText) findViewById(R.id.mobile_number); 
    mobileNumber.addTextChangedListener(this); 
    firstName = (EditText) findViewById(R.id.first_name); 
    firstName.addTextChangedListener(this); 
    lastName = (EditText) findViewById(R.id.last_name); 
    lastName.addTextChangedListener(this); 
    patients = (ListView) findViewById(R.id.patients); 
    patients.setOnItemClickListener(this); 
    adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1); 
    patients.setAdapter(adapter); 

    PacketFilter filter = new MessageTypeFilter(Message.Type.chat); 
    Login.connection.addPacketListener(this, filter); 
} 

@Override 
protected void onResume() 
{ 
    super.onResume(); 
    PacketFilter filter = new MessageTypeFilter(Message.Type.chat); 
    Login.connection.addPacketListener(this, filter); 
} 

@Override 
protected void onStop() 
{ 
    Login.connection.removePacketListener(this); 
    super.onStop(); 
} 

@Override 
public void onTextChanged(CharSequence charSequence, int i1, int i2, int i3) 
{ 
    return; 
} 

@Override 
public void afterTextChanged(Editable editable) 
{ 
    adapter.clear(); 

    String mobileNumber = this.mobileNumber.getText().toString(); 
    String firstName = this.firstName.getText().toString(); 
    String lastName = this.lastName.getText().toString(); 

    if(mobileNumber.equals("")) 
     mobileNumber = null; 
    if(firstName.equals("")) 
     firstName = null; 
    if(lastName.equals("")) 
     lastName = null; 

    searchPatient(mobileNumber, firstName, lastName); 
} 

@Override 
public void beforeTextChanged(CharSequence charSequence, int i1, int i2, int i3) 
{ 
    return; 
} 

public void searchPatient(View view) 
{ 
    adapter.clear(); 

    String mobileNumber = this.mobileNumber.getText().toString(); 
    String firstName = this.firstName.getText().toString(); 
    String lastName = this.lastName.getText().toString(); 

    if(mobileNumber.equals("")) 
     mobileNumber = null; 
    if(firstName.equals("")) 
     firstName = null; 
    if(lastName.equals("")) 
     lastName = null; 

    searchPatient(mobileNumber, firstName, lastName); 
} 

private void searchPatient(String mobileNumber, String firstName, String lastName) 
{ 
    Login.connection.sendPacket(getMessage(buildCommand(mobileNumber, firstName, lastName))); 
} 

private String buildCommand(String mobileNumber, String firstName, String lastName) 
{ 
    StringBuilder commandBuilder = new StringBuilder(); 

    commandBuilder.append("##?##"); 
    commandBuilder.append("##app:patients##"); 
    commandBuilder.append("##" + mobileNumber + ", " + firstName + ", " + lastName + "##"); 

    return commandBuilder.toString(); 
} 

private Message getMessage(String body) 
{ 
    Message message = new Message("[email protected]", Message.Type.chat); 
    message.setBody(body); 

    return message; 
} 

@Override 
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) 
{ 
    String[] record = adapterView.getItemAtPosition(i).toString().split("\\,"); 
    if(record.length == 1) 
     return; 

    Intent patientDetails = new Intent(getApplicationContext(), PatientDetails.class); 
    patientDetails.putExtra(PatientDetails.ACTION, PatientDetails.READ_PATIENT); 
    patientDetails.putExtra(PatientDetails.RECORD, record); 

    startActivity(patientDetails); 
} 

@SuppressLint("NewApi") 
@Override 
public void processPacket(Packet packet) 
{ 
    Message message = (Message) packet; 
    String reply = message.getBody().trim(); 

    if(reply.contains(".")) 
    { 
     String[] records = reply.split("\\."); 

     if(Build.VERSION.SDK_INT >= 11) 
      adapter.addAll(records); 
     else 
      for(int i = 0; i < records.length; i++) 
       adapter.add(records[i]); 
    } 
    else 
     adapter.add(reply); 

    adapter.notifyDataSetChanged(); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    getMenuInflater().inflate(R.menu.menu, menu); 
    return true; 
} 

}

search_patient.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:orientation="vertical" 
tools:context=".SearchPatient" > 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/mobile_number"/> 
<EditText 
    android:id="@+id/mobile_number" 
    android:layout_width="200dp" 
    android:layout_height="wrap_content" 
    android:inputType="number"/> 
<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/and_or"/> 
<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/first_name"/> 
<EditText 
    android:id="@+id/first_name" 
    android:layout_width="200dp" 
    android:layout_height="wrap_content" 
    android:inputType="text"/> 
<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/last_name"/> 
<EditText 
    android:id="@+id/last_name" 
    android:layout_width="200dp" 
    android:layout_height="wrap_content" 
    android:inputType="text"/> 
<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/search_patient" 
    android:onClick="searchPatient"/> 
<ListView 
    android:id="@+id/patients" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:scrollbars="vertical"/> 

</LinearLayout> 

답변

2

봅니다 어댑터에 다른 Context을 통과 :

new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1); 

자세히 알아보기 : Android Holo Light styling changes depending on chosen context

+0

감사합니다. 문제가 실제로 무엇인지 설명해 주시겠습니까? –

+0

내 대답을 수정했습니다. –