spinner

2011.07.19 12:55PM
spinner

我是初學者,正在邊做專題邊學android
版本:2.2  使用工具:eclipse

 最近在寫spinner

我把書上寫的java跟xml 匯入

要模擬的時候都沒東西跑出來

不知道是哪裡出了問題

 

5 則回應

  • 基本應該這樣就要有東西出來,Spinner沒這麼複雜

    Spinner spinner1=null;

    spinner1=(Spinner)findViewById(R.id.spn1);
    ArrayAdapter<String> adapterPrice1=new ArrayAdapter<String>(this, R.layout.spinner_sub, String陣列放這邊);
    spinner1.setAdapter(adapterPrice1);
    spinner1.setOnItemSelectedListener(這應該不是問題吧);
     

    另外你的EMU似乎有問題,砍掉重新設定一個,設定完直接Start看看~

    2011-07-19
  •  沒細看您的程式碼(Codes)。

    看了的模擬器出現的紅字,猜想你可以試著:
    1. 等模擬器完全開好再run。

    2. 檢查的manifest,是不是漏了什麼。

    2011-07-19
  •  xml:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://sche

    ​mas.android.com/apk/res/an​droid"
    android:layout_width="fill​_parent" android:layout_height="fil​l_parent"
    android:orientation="horiz​ontal">
    <ImageView android:id="@+id/icon" android:layout_width="30px​"
    android:layout_height="40p​x" />

    <TextView android:id="@+id/dataInfo"​ android:layout_width="wrap​_content"
    android:layout_height="wra​p_content" android:textSize="25sp"
    style="?android:attr/spinn​erDropDownItemStyle" />
    </LinearLayout>
    java:
    package ncu.bnlab.SpinnerMenu;

    import android.app.Activity;
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFac​tory;
    import android.os.Bundle;
    import android.view.LayoutInflate​r;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter​;
    import android.widget.ImageView;
    import android.widget.Spinner;
    import android.widget.TextView;

    public class SpinnerMenu extends Activity {
    // 選單資料
    String showData[] = {"選單功能1", "選單功能2", "選單功能3", "選單功能4", "選單功能5"};

    private Spinner m_spinner;
    private MyAdapter adapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstan​ceState);
    setContentView(R.layout.ma​in);

    m_spinner = (Spinner) findViewById(R.id.Spinner0​1);
    // 產生自訂 adapter 物件
    adapter = new MyAdapter(this);
    m_spinner.setAdapter(adapt​er);
    }

    class MyAdapter extends BaseAdapter{



    LayoutInflater myInflater;



    Bitmap bm;




    public MyAdapter(Context c){



    myInflater = LayoutInflater.from(c);



    bm = BitmapFactory.decodeResour​ce( c.getResources(), R.drawable.icon );



    }

    public void setDropDownViewResource(in​t spinnerStyle) {
    }

    class ViewContainer{
    TextView textView;
    ImageView imageView;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    final int index = position;
    ViewContainer vc = new ViewContainer();
    if( convertView == null )
    {
    convertView = myInflater.inflate(R.layou​t.spinner_style, null);
    vc.textView = (TextView) convertView.findViewById(R​.id.dataInfo);
    vc.imageView = (ImageView) convertView.findViewById(R​.id.icon);
    convertView.setTag(vc);
    }
    else
    {
    vc = (ViewContainer) convertView.getTag();
    }
    // 加入選單內容
    vc.textView.setText(showDa​ta[index]);
    // 加入圖檔
    vc.imageView.setImageBitma​p(bm);
    return convertView;
    }

    @Override
    public int getCount() {
    // TODO Auto-generated method stub
    return showData.length;
    }

    @Override
    public Object getItem(int position) {
    // TODO Auto-generated method stub
    return null;
    }

    @Override
    public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
    }



    }
    }

    模擬器出現的紅字:
    [2011-07-19 15:08:04 - test] Failed to install test.apk on device 'emulator-5554': device not found
    [2011-07-19 15:08:04 - test] com.android.ddmlib.Install​Exception: device not found
    [2011-07-19 15:08:04 - test] Launch canceled!

     

    2011-07-19
  •  貼個程式碼上來吧,這樣比較好判斷

    另外也可看看模擬器有沒有甚麼錯誤訊息

    2011-07-19
    • Kerash Huang wrote:

       貼個程式碼上來吧,這樣比較好判斷

      另外也可看看模擬器有沒有甚麼錯誤訊息

       

      xml:
      <?xml version="1.0" encoding="utf-8"?>
      <LinearLayout xmlns:android="http://sche

      ​mas.android.com/apk/res/an​droid"
      android:layout_width="fill​_parent" android:layout_height="fil​l_parent"
      android:orientation="horiz​ontal">
      <ImageView android:id="@+id/icon" android:layout_width="30px​"
      android:layout_height="40p​x" />

      <TextView android:id="@+id/dataInfo"​ android:layout_width="wrap​_content"
      android:layout_height="wra​p_content" android:textSize="25sp"
      style="?android:attr/spinn​erDropDownItemStyle" />
      </LinearLayout>
      java:
      package ncu.bnlab.SpinnerMenu;

      import android.app.Activity;
      import android.content.Context;
      import android.graphics.Bitmap;
      import android.graphics.BitmapFac​tory;
      import android.os.Bundle;
      import android.view.LayoutInflate​r;
      import android.view.View;
      import android.view.ViewGroup;
      import android.widget.BaseAdapter​;
      import android.widget.ImageView;
      import android.widget.Spinner;
      import android.widget.TextView;

      public class SpinnerMenu extends Activity {
      // 選單資料
      String showData[] = {"選單功能1", "選單功能2", "選單功能3", "選單功能4", "選單功能5"};

      private Spinner m_spinner;
      private MyAdapter adapter;

      @Override
      public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstan​ceState);
      setContentView(R.layout.ma​in);

      m_spinner = (Spinner) findViewById(R.id.Spinner0​1);
      // 產生自訂 adapter 物件
      adapter = new MyAdapter(this);
      m_spinner.setAdapter(adapt​er);
      }

      class MyAdapter extends BaseAdapter{



      LayoutInflater myInflater;



      Bitmap bm;




      public MyAdapter(Context c){



      myInflater = LayoutInflater.from(c);



      bm = BitmapFactory.decodeResour​ce( c.getResources(), R.drawable.icon );



      }

      public void setDropDownViewResource(in​t spinnerStyle) {
      }

      class ViewContainer{
      TextView textView;
      ImageView imageView;
      }

      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
      // TODO Auto-generated method stub
      final int index = position;
      ViewContainer vc = new ViewContainer();
      if( convertView == null )
      {
      convertView = myInflater.inflate(R.layou​t.spinner_style, null);
      vc.textView = (TextView) convertView.findViewById(R​.id.dataInfo);
      vc.imageView = (ImageView) convertView.findViewById(R​.id.icon);
      convertView.setTag(vc);
      }
      else
      {
      vc = (ViewContainer) convertView.getTag();
      }
      // 加入選單內容
      vc.textView.setText(showDa​ta[index]);
      // 加入圖檔
      vc.imageView.setImageBitma​p(bm);
      return convertView;
      }

      @Override
      public int getCount() {
      // TODO Auto-generated method stub
      return showData.length;
      }

      @Override
      public Object getItem(int position) {
      // TODO Auto-generated method stub
      return null;
      }

      @Override
      public long getItemId(int position) {
      // TODO Auto-generated method stub
      return 0;
      }



      }
      }

      模擬器出現的紅字:
      [2011-07-19 15:08:04 - test] Failed to install test.apk on device 'emulator-5554': device not found
      [2011-07-19 15:08:04 - test] com.android.ddmlib.Install​Exception: device not found
      [2011-07-19 15:08:04 - test] Launch canceled!

       

      2011-07-19