스피너에 표시된 선택한 항목의 텍스트 크기와 방향을 변경해야하지만 스피너의 기본 레이아웃 인 android.R을 계속 사용해야합니다. layout.simple_spinner_item스피너의 텍스트 크기와 방향을 변경하는 방법
왜? 맞춤 레이아웃을 사용하면 동적으로 생성 된 문자열 배열을 회 전자에로드 할 수 없기 때문입니다. 그것은 안드로이드의 실패입니다 : S
나를 좀 도와 줄래?
스피너에 표시된 선택한 항목의 텍스트 크기와 방향을 변경해야하지만 스피너의 기본 레이아웃 인 android.R을 계속 사용해야합니다. layout.simple_spinner_item스피너의 텍스트 크기와 방향을 변경하는 방법
왜? 맞춤 레이아웃을 사용하면 동적으로 생성 된 문자열 배열을 회 전자에로드 할 수 없기 때문입니다. 그것은 안드로이드의 실패입니다 : S
나를 좀 도와 줄래?
좋습니다. 너무 까다 롭지 만 너무 어렵지는 않습니다.
SimpleAdapter
사용자 지정 어댑터를 만듭니다.SpinnerAdapter
을이 새 어댑터에 구현했는지 확인하십시오. (Eclipse를 사용하는 경우 구현되지 않은 메소드를 작성하여 도움을 제공하십시오)SpinnerAdapter
을 구현하면 드롭 다운보기 자원 xml 객체를 추가해야합니다. 정적으로 추가하거나 설정자를 정의하십시오.public View getView(int position, View convertView, ViewGroup parent)
(사용자 정의보기를 회 전자에 반환하는 곳)에 parent.getSelectedItem()
으로 전화하여 목록에있는 position
의 항목과 같은지 확인하십시오.MyCustomSpinnerAdapter adapter = new MyCustomSpinnerAdapter(this, myListOfItems);
adapter.setDropDownViewResource(R.layout.my_dropdown_view_resource);
mySpinner.setAdapter(adapter);
는 구글이 그것을 수행하는 방법을 보려면 구글 codesearch here에서 살펴보고 "안드로이드 ArrayAdapter.java"를 검색 - :
은 활동에서이 같은 전화 어댑터를 사용하려면 코어/java/android/widget 링크를 클릭하면 나머지 다양한 것을 파악하는 데 필요한 다양한 어댑터, 인터페이스 및 위젯이있는 패키지로 이동합니다.
행운을 비네.
편집 : 나는 안드로이드의 실패라고 생각하지 않습니다
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Spinner;
import android.widget.SpinnerAdapter;
import android.widget.TextView;
import com.beget.consumer.R;
public class MyCustomSpinnerAdapter extends BaseAdapter implements SpinnerAdapter {
private String[] list;
private Context context;
public MyCustomSpinnerAdapter(Context context, String[] list) {
super();
this.list = list;
this.context = context;
// TODO Auto-generated constructor stub
}
@Override
public int getCount() {
return list.length;
}
@Override
public Object getItem(int position) {
//you need to add index safety here - make sure that position is a valid index
return list[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = context.inflate(R.layout.my_view_item, null);
holder = new ViewHolder();
holder.myView = (TextView) convertView.findViewById(R.id.beget_box_description);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
if (list[position] == ((Spinner) parent).getSelectedItem()) {
holder.myView.setTextSize(25);
} else {
holder.myView.setTextSize(15);
}
holder.myView.setText(list[position]);
return convertView;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
//change this if you want a different view for your dropdown list. It's the same as above, except you could
//inflate a different view if you wanted.
return getView(position, convertView, parent);
}
static class ViewHolder {
TextView myView;
}
}
나는이 일을하는 법을 이해하지 못한다. 내 기술에 너무 어려워. 나는 구글에서 예제와 도움을 찾으려고 노력하고 있지만 찾을 수는 없다. 이 대답은 올바르게 구현되고 작동하는 것이 불가능하다고 생각합니다. – NullPointerException
(테스트되지 않은) 예제를 추가했습니다. 그것은 당신이 원하는 것을 거의해야합니다. 그러나 보장은 없습니다! –
, 당신이 제대로 스피너를 사용하는 방법을 이해하는 데 충분한 시간을 투자하지 않았다고 생각 예를 들면 다음과 같습니다로에서 검증되지 않은 최초의 균열은 . 사용자 정의 항목 레이아웃을 사용하는 경우에도 동적으로 추가 된 항목과 함께 잘 작동합니다. – inazaruk
inazaruk, 그것은 말하기 좋다 : "그것은"작동하지만, 만약 당신이 내가 그것을 tryed 이해 stackoverflow와 구글을 많이 검색하고 내가 길을 찾지 못했습니다 내 게시물을 읽을 시간이 걸릴 왜냐하면,이 질문을하기 때문입니다. 그럼, 어떻게 해야할지 안다면 ... 어떻게 해야할지 ... – NullPointerException