它的第二天和斗争仍在继续...... :( 我有一个微调器,其中有大量文本长度的项目..所以我想添加eclippse和marque.so所选项目将可滚动..
在选择后需要旋转器的选定项目滚动。微调器的宽度小于其选择的文本。每当选择一个项目时,它必须在微调器显示中无限滚动。我可以在TextView中获取文本到选取框,但不能获得微调器选定项的文本。任何线索?
我有 Spinnerprivate Spinner spinProcess;
spinProcess = (Spinner)findViewById(R.id.spinSearch);
和此微调器的XMl如下所示
<Spinner
android:id="@+id/spinSearch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:background="@drawable/add_project_drop_down_enabled"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:paddingLeft="10dp"
android:paddingRight="35dp"
android:spinnerMode="dropdown"
android:scrollHorizontally="true"
android:textColor="@color/spinnerText" />
罪人的适配器如下
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(HelpActivity.this,android.R.layout.simple_spinner_dropdown_item);
for(int i=0;i<SpinnerLIst.size();i++)
{
arrayAdapter.add(SpinnerLIst.get(i));
}
spinProcess.setAdapter(arrayAdapter);
我尝试修改android.R.layout.simple_spinner_dropdown_item ..但没有一个对我有用? 关于这个问题已经有很多问题了......但没有这样的解决方案对我有用......
答案 0 :(得分:0)
我尝试使用自定义适配器进行微调器
item_row.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:lines="1"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:text="Simple application that shows how to use marquee, with a long text"
android:textColor="#ff4500" />
</RelativeLayout>
适配器:
public class SpinnerAdapter extends BaseAdapter {
private Context mContext;
private List<String> albumData;
private static LayoutInflater inflater = null;
public SpinnerAdapter(Context context, List<String> albumList) {
mContext = context;
albumData = albumList;
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return albumData.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public class ViewHolder {
private TextView albumName;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
try {
if (convertView == null) {
convertView = inflater.inflate(R.layout.item_row, null);
holder = new ViewHolder();
holder.albumName = (TextView) convertView
.findViewById(R.id.textView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.albumName.setText(albumData.get(position));
holder.albumName.setSelected(true);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return convertView;
}
}
主要活动:
public class MainActivity extends Activity {
private Spinner spin;
private Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.demo2);
spin = (Spinner) findViewById(R.id.spinSearch);
mContext = this;
List<String> item = new ArrayList<String>();
item.add("Item 1");
item.add("Item 1 setAnimationListener setAnimationListener setAnimationListener item 1");
SpinnerAdapter adapter = new SpinnerAdapter(mContext, item);
spin.setAdapter(adapter);
}
}
答案 1 :(得分:0)
它也在我的最后工作。 答案提供了我的Meenal Sharma为我工作。 重要的一点是添加RelativeLayout而不是使用
android:lines="1"
android:singleLine="true"
布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<CheckedTextView
android:id="@+id/textView"
style="?android:attr/spinnerDropDownItemStyle"
android:singleLine="true"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:textSize="19sp"
android:paddingLeft="1dp"
android:scrollHorizontally="true"
android:marqueeRepeatLimit="marquee_forever"
android:ellipsize="marquee"/>
</RelativeLayout>