我需要使用文本框和圖標創建微調框。我該怎麼做?我現在才如何把相同的圖標,以微調的所有行..我需要把diferent圖標,每行..帶文本和圖標的微調框
回答
這是main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Spinner android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
這是textandicon。 XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon"/>
<TextView android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ABC"/>
</LinearLayout>
這是活動: -
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Spinner;
public class SpinnerPractice extends Activity {
Spinner spinner;
LayoutInflater inflator;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
spinner = (Spinner) findViewById(R.id.spinner);
spinner.setAdapter(new NewAdapter());
inflator = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
class NewAdapter extends BaseAdapter {
@Override
public int getCount() {
return 26;
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflator.inflate(R.layout.textandicon, null);
}
return convertView;
}
}
}
希望這有助於。
代替使用新的textandicon.xml佈局,我只使用'android.R。 layout.simple_list_item_1' 並在擴展適配器中設置圖標: TextView label =(TextView)row.findViewById(android.R.id.text1); label.setText(getItem(position));' label.setCompoundDrawablesWithIntrinsicBounds(image_res_id,0,0,0);' – Benoit 2016-10-19 08:14:34
執行此操作的簡單方法是使用使用this constructor創建的ArrayAdapter。第二個和第三個參數是每行佈局的ID(您可以在XML文件中定義)以及可以代表您的項目的佈局中的文本字段的ID。
例如,你可以有這樣的(row.xml)定義的佈局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon"/>
<TextView
android:id="@+id/weekofday"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
然後,你可以創建你ArrayAdapter這樣的:
package com.exercise.AndroidCustomSpinner;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class AndroidCustomSpinner extends Activity {
String[] DayOfWeek = {"Sunday", "Monday", "Tuesday",
"Wednesday", "Thursday", "Friday", "Saturday"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Spinner mySpinner = (Spinner)findViewById(R.id.spinner);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.row, R.id.weekofday, DayOfWeek);
mySpinner.setAdapter(adapter);
}
}
注意通話ArrayAdapter<String>(this, R.layout.row, R.id.weekofday, DayOfWeek);
它定義了行佈局爲R.layout.row
,顯示數據R.id.weekofday
的文本字段以及數據到數組DayOfWeek
。
唯一的缺點是你不能改變每個項目的圖標......如果你想這樣做,你想重寫BaseAdapter.getView()來爲每一行創建(或重新使用)一個視圖Spinner的幾乎與ListView相同。有幾百個關於如何做到這一點的教程。
- 1. 帶文本和圖標的微調框
- 2. 帶有文本的Java SWT微調框?
- 3. 帶默認圖標的微調框+箭頭
- 4. 帶有微調像下拉的Android文本框
- 5. 帶矩形邊框的微調框
- 6. 圖片和複選框微軟帶2
- 7. Android - 帶有圖標和文本的Gridview
- 8. Css - 帶圖標框和半徑的文本輸入
- 9. 微調和光標
- 10. 在微調框中包裝文本android
- 11. 從微調框中刪除文本
- 12. ExtJs3如何添加微調文本框
- 13. 在微調框上設置文本
- 14. UIButton - 帶圖標的文本文本
- 15. 的Javascript HTML如何創建帶有多用戶(圖標和文本)文本框
- 16. 檢查文本字段和微調框中的空值
- 17. 如何在android中創建微調框中的微調值和文本中的選擇框
- 18. 帶有WPF圖像圖標的文本框
- 19. 帶圖標和文本但隱藏文本的JButton
- 20. 如何讓微調框顯示文本視圖
- 21. 將內容從微調框改爲文本視圖
- 22. 帶標籤的WPF文本框
- 23. 微調框和滾動條
- 24. 帶按鈕和TOAST的Android微調器
- 25. 微調pcolor()極座標圖
- 26. Android自定義微調器文本重疊右鍵圖標
- 27. 閱讀文本值和微調器值
- 28. Android微調和編輯文本
- 29. 微調器和編輯文本
- 30. 帶圖像和色調的標籤欄
#嘗試這個 查看我最簡單的方法[鏈接](https://stackoverflow.com/a/47390384/7584651) – Sunil 2017-11-20 11:00:29