【问题标题】:ANDROID adapter in a spinner微调器中的 ANDROID 适配器
【发布时间】:2014-05-07 08:33:00
【问题描述】:

我对使用微调器和适配器有一个小问题,我想搜索目录中的所有文件并将文件名放在微调器中。 这是我的代码:

File repertoire = new File(Environment.getExternalStorageDirectory()+"/androidtest/vente")  ;


    String[] tabFile = repertoire.list();

    if (tabFile==null){

        Log.d("file null","testdfed");  
    }
    Log.d("//","///////////");
    for (int i = 0; i < tabFile.length; i++) {
        Log.d("Tableau",tabFile[i].toString());
    }

    ArrayList<String> list = new ArrayList<String>();
    for(int i=0; i<tabFile.length; i++) {
        list.add(tabFile[i]);

    }

//for checking in the logcat if my code have found all the files        
   for (String s : list) {

       Log.d("Liste",s);
   }


//creation of the adapter   
    ArrayAdapter<String> adapter = new ArrayAdapter<String> (this,
            android.R.layout.simple_spinner_item, list);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    sp.setAdapter(adapter);

//finally the listener
    sp.setOnItemSelectedListener(new OnItemSelectedListener() {

    public void onItemSelected(AdapterView<?> arg0, View view, int position, long id) {
        int item = sp.getSelectedItemPosition();
        Toast.makeText(getBaseContext(),
                "You have selected 222 : " + item,
                Toast.LENGTH_SHORT).show();

    }
    public void onNothingSelected(AdapterView<?> arg0) { }
});

我的代码在 sp.setAdapter(adapter); 处崩溃; 谢谢 ! :)

我是 SOF 的新手,所以我必须编辑我的文本: 对于 Mukesh Kumar 的回答 已经完成了,我在onCreate之前初始化

public class OfflineActivity extends FragmentActivity {

private PagerAdapter mPagerAdapter;
private Spinner sp = (Spinner)findViewById(R.id.spinm);

protected void onCreate(Bundle savedInstanceState) {

所以我会像你一样替换

public class OfflineActivity extends FragmentActivity {

private PagerAdapter mPagerAdapter;
private Spinner sp;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.setContentView(R.layout.viewpager);
    sp = (Spinner)findViewById(R.id.spinm);

因为同样的原因我的代码崩溃了:/

【问题讨论】:

  • 请显示错误日志
  • 发布 logcat 错误消息。
  • 05-07 12:00:03.731: E/Trace(6236): 打开跟踪文件时出错:没有这样的文件或目录 (2)

标签: android spinner android-arrayadapter android-spinner


【解决方案1】:

正如你所说的My code crash at sp.setAdapter(adapter);

可能是你没有初始化sp,。使用前先初始化。 IE。 在ActivityonCreate() 中编写此代码。

sp= (Spinner)findViewById(R.id.Spinner_id_in_your_xml);

【讨论】:

    【解决方案2】:

    这适用于微调器

    spinner1 = (Spinner) findViewById(R.id.spinner1);
        List<String> list = new ArrayList<String>();
        list.add("Android");
        list.add("Java");
        list.add("Spinner Data");
        list.add("Spinner Adapter");
        list.add("Spinner Example");
    
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,list);
        dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner1.setAdapter(dataAdapter);
    

    【讨论】:

    • 同理,如果我发表评论,这段代码不会崩溃://spinner1.setAdapter(dataAdapter);
    【解决方案3】:

    这可能是因为您传递的是片段而不是上下文尝试替换 ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.R.layout.simple_spinner_item, list);

    ArrayAdapter<String> adapter = new ArrayAdapter<String> (getActivity(),
            android.R.layout.simple_spinner_item, list);
    

    【讨论】:

    • 另一个错误:在 OfflineActivity 类中未定义 getActivity() //我的主类
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多