2014-10-22 3 views
0

Его второй день и борьба продолжаются ... :( У меня есть один прядильщик, где есть элементы с огромной длиной текста .. поэтому я хотел добавить eclippse и marque.so, что выбрал элемент получит прокручиваемое значение.Прокручиваемый текст выбранного элемента в Spinner Android

Нужно выбрать выбранный элемент счетчика для прокрутки после его выбора. Ширина счетчика меньше, чем текст его выбора. Всякий раз, когда элемент выбран, он должен прокручивать бесконечно в spinner display. Я могу получить текст в TextView для выделения, но не текст выбранного элемента. Любая подсказка?

У меня есть Spinner

private 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

Я попробовал его с пользовательским адаптером для блесны

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); 
    } 
} 
+0

это working..when я выбрать элемент из капли down..the один с большим прокрутке текста .. – Meenal

+0

, что я смотрю ... выбранный элемент в списке счетчиков должен быть прокручиваемым .. я пробовал эту вещь ... он только прокручивает текст в элементах списка, а не выбранном –

+0

выбран один ... то есть тот, который показан на прядильщик .. это делает ... выбранный элемент на свитках спиннера .. – Meenal

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> 
Смежные вопросы