带有文本和图标的微调器

2023-11-29

在我的应用程序中,我有一个Spinner,可以填充两个Arrays of Strings,存储在我的values/strings.xml资源。根据两个单选按钮的状态,选择正确数组中的值并填充我的微调器。

对于每个字符串数组,我都有一个大小相同的图标数组。我的所有图标都以“A”开头,后面跟着一个数字。我无法更改它,它就像数据库中一样存储。我在 Strings.xml 中有一个数组,其中包含绘制图标所需的所有数字。所有实际的图标都可以在drawable资源文件夹。

现在我想显示微调器选择的列表中字符串旁边的相应项目。当选择一个项目时,我只需要查看文本。

我在互联网上搜索了一个很好的教程,但根据我发现的内容,我还没有成功地做到这一点。我刚刚开始 Android 编程,所以我想我需要一些帮助。我希望有人能引导我走向正确的方向。

我将字符串数组放入实际数组中,例如:

// Arrays with each function in text
arbeiderjobs = getResources().getStringArray(R.array.arbeiders);
bediendejobs = getResources().getStringArray(R.array.bediende);

// Arrays with each function ID
arbeiderjobsid = getResources().getIntArray(R.array.arbeidersid);
bediendejobsid = getResources().getIntArray(R.array.bediendeid);

当选择其中一个单选按钮时,我使用以下事件处理程序代码:

// RadioButton 'Arbeider': If a value gets chosen in this list, 
// the corresponding ID is put in the below variable 
RadioButton rbArbeider = (RadioButton) findViewById(R.id.rbArbeider);
rbArbeider.setOnCheckedChangeListener(new OnCheckedChangeListener() 
{
  public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
  {
    if (isChecked)
    {
      showSpinner(arbeiderjobs, R.id.cmbFuncties);
      s.setOnItemSelectedListener(new OnItemSelectedListener() 
      {
        public void onItemSelected(AdapterView<?> parentView, 
                                   View selectedItemView, int position, long id)
        {
          functie = arbeiderjobsid[position];
          statuut = 1;
          visible = false;  
        }
      });

      visible = true;
    }
  } // s.setOnItemSelectedListener

}); // rbArbeider.setOnCheckedChangeListener

这是我的showSpinner method:

private void showSpinner(String [] jobs, int id)
{    
  MyCustomAdapter adapter = new MyCustomAdapter
  (
    FindJob.this, 
    R.layout.spinnerrow, 
    jobs
  );

  adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

  for (int i = 0; i < jobs.length; i++)
  {
    adapter.add(jobs[i]);
  }

  Spinner s = (Spinner) findViewById(id);
  s.setClickable(true);
  s.setAdapter(adapter);
}

我制作了一个基于的自定义适配器本教程,但我有点纠结......我需要一些帮助:

public class MyCustomAdapter extends ArrayAdapter<String>
{

  public MyCustomAdapter(Context context, int textViewResourceId, 
                         String[] objects) 
  {
    super(context, textViewResourceId, objects);
  }

  @Override
  public View getDropDownView(int position, View convertView, ViewGroup parent) 
  {
    return getCustomView(position, convertView, parent, 
                         arbeiderjobs, arbeiderjobsid);
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) 
  {
    return getCustomView(position, convertView, parent, 
                         arbeiderjobs, arbeiderjobsid);
  }

  public View getCustomView(int position, View convertView, ViewGroup parent,                                                         
                            String jobs[], int jobsid[]) 
  {
    // return super.getView(position, convertView, parent);

    LayoutInflater inflater = getLayoutInflater();
    View row = inflater.inflate(R.layout.spinnerrow, parent, false);
    TextView label = (TextView) findViewById(R.id.functie);
    label.setText(jobs[position]);

    ImageView icon = (ImageView) row.findViewById(R.id.icon);

    String uri = "@drawable/a" + jobsid[position];
    int imageResource = getResources().getIdentifier
    (  
      uri, 
      null, 
      getPackageName()
    );
    icon.setImageResource(imageResource);

    if (visible)
    {
      icon.setVisibility(View.GONE);
    }

    return row;
  }

}

这就是我希望它看起来像的样子:

Result


您需要实现自定义适配器并为列表项定义自定义布局。检查这个教程.

UPDATE

尝试以下操作。我还没有测试过代码,但我认为它应该像那样工作。

public class MyCustomAdapter extends ArrayAdapter<String>{

    private String[] mIcons;

    public MyCustomAdapter(Context context, int textViewResourceId,
    String[] objects, String[] icons) {
        super(context, textViewResourceId, objects);
        mIcons = icons;
    }

    @Override
    public View getDropDownView(int position, View convertView, ViewGroup parent) {
        return getCustomView(position, convertView, parent);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        return getCustomView(position, convertView, parent);
    }

    public View getCustomView(int position, View convertView, ViewGroup parent) {

       LayoutInflater inflater=getLayoutInflater();
       View row=inflater.inflate(R.layout.spinnerrow, parent, false);
       TextView label=(TextView) findViewById(R.id.functie);
       label.setText(getItem(position);

       ImageView icon=(ImageView)row.findViewById(R.id.icon);

       String uri = "@drawable/a" + mIcons[position];
       int imageResource = getResources().getIdentifier(uri, null, getPackageName());
       icon.setImageResource(imageResource);

       return row;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有文本和图标的微调器 的相关文章

  • 使用 google Directions API 的地图视图绘制方向 - 解码折线

    我正在尝试使用 Google 方向 API 在我的地图视图上显示方向 但我在从 JSON 响应获取数据时遇到困难 我可以获得 级别 和 点 字符串 但无法弄清楚如何将它们解码为地图上的点 任何帮助将非常感激 我有一个类可以为您解码它们 添加
  • FTS3 在 ORMLite 中搜索?

    我对 FTS3 一无所知 除了http developer android com guide topics search search dialog html http developer android com guide topics
  • 从 Android 代码设置的 SECRET_CODE

    我知道如何使用清单文件中的秘密代码 它与此源代码配合良好
  • 如何在android线性布局上获得阴影? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在android中为View设置阴影 https stackoverflow com questions 4406524 how to set shadow to a view in androi
  • Android在排序列表时忽略大小写

    我有一个名为路径的列表 我目前正在使用以下代码对字符串进行排序 java util Collections sort path 这工作正常 它对我的 列表进行排序 但是它以不同的方式处理第一个字母的情况 即它用大写字母对列表进行排序 然后用
  • 如何在android中设置权限WRITE_SECURE_SETTINGS? [复制]

    这个问题在这里已经有答案了 我正在尝试启用 4 0 以上的辅助功能服务设置 但它显示异常 即 引起原因 java lang SecurityException 权限拒绝 写入安全设置需要 android permission WRITE S
  • 如何在手机缓存中保存用户名和密码

    我有一个用户登录应用程序 它需要用户的电子邮件和密码 我想将电子邮件和密码保存在手机缓存中 以便用户不必再次输入 有什么办法可以将数据保存在Android缓存中吗 我认为你需要使用SharedPreference用于在设备中使用应用程序时保
  • 放置在 NavigationDrawer 顶部的片段

    我正在尝试添加一个PreferenceFragment在我的应用程序中 问题是 它自动放置在我的顶部NavigationDrawer public class SetPreferenceActivity extends Activity O
  • 画透明圆,外面填充

    我有一个地图视图 我想在其上画一个圆圈以聚焦于给定区域 但我希望圆圈倒转 也就是说 圆的内部不是被填充 而是透明的 其他所有部分都被填充 请参阅这张图片了解我的意思 http i imgur com zxIMZ png 上半部分显示了我可以
  • 菜单在片段的 onCreateOptionsMenu 处多次膨胀调用

    我使用 Fragments 当我切换到嵌套 Fragment 时 它实现了public void onCreateOptionsMenu Menu menu MenuInflater inflater 当我到达该嵌套片段时 我的菜单会多次膨
  • Android:滚动 Horizo​​ntalScrollView 时如何禁用 ScrollView 的垂直滚动?

    我正在开发一个带有带有 ScrollView 的 Activity 的 Android 应用程序 其中包含 Horizo ntalScrollView 等内容 当我触摸 Horizo ntalScrollView 时 我想禁用外部 Scro
  • jqgrid长文本换行

    在jqgrid中 我们从数据库获取长文本 但在JQgrid中显示时需要换行 有什么方法可以换行长文本 没有任何空格 我们只有 110px 的空间用于收款人姓名字段 因为我们有多个列需要显示 我们的代码就像 name firstPayeeNa
  • Android 后台服务示例,具有交互式调用方法

    我不是 Android 方面的专家 我正在寻找一个 Android 应用程序的示例 该应用程序使用一个服务 其中有真正的功能方法 或者换句话说 一个服务可以用来做什么 我们什么时候需要它 超越简单的东西服务举例 我确信您渴望获得一些工作代码
  • Android:RecyclerView 不显示片段中的列表项

    有人可以帮我尝试让我的 RecyclerView 出现吗 如果我不在片段中实现它 就会出现这种情况 然而 当我尝试将其实现到片段中时 CarFront 中的其他 XML 代码与 RecyclerView 分开显示 我的日志中收到此错误 E
  • 在 KitKat 4.4.2 中获取 SDard 路径和大小

    我在 Google Play 上有一个设备信息应用程序 在该应用程序中我有存储信息 我知道 Android 4 4 在访问外部 SD 卡方面发生了一些变化 内部似乎没有给我带来问题 我的问题是 如何可靠地获取 KitKat 上 SD 卡的大
  • 尝试将 SQLite DB 从数据复制到 SD 卡

    我正在使用以下代码 该代码发布在 Stack Overflow 上的某个位置 并根据我的目的进行了修改 try File sd Environment getExternalStorageDirectory File data Enviro
  • 单元测试时 Android Studio 2.0 中测试状态终止且没有任何失败消息

    Issue 我昨天在 Ubuntu 上从 1 5 升级到了 Android Studio 2 0 当我在 Android Studio 2 0 中进行单元测试时 即使所有测试都已通过 它也会显示 终止测试 状态 有时它只显示部分测试通过 我
  • 在Android Studio gradle项目中使用NDK和STL

    我在将 stlport 链接到 Android Studio 中的 gradle 项目时遇到问题 使用 NDK 的 Eclipse Android 项目迁移到 Android Studio 该项目使用 STL 我有包含内容的 android
  • Android 中带有组的列表视图

    我有一个列表视图 每行都有一些日期和文本 我可以像 iPhone 中那样将这个 listView 分组 组之间有标题吗 在 android 中是否可能 请帮忙 即 我需要在 Listview 行之间有标题栏 以便如果我使用日期对其进行分组
  • 如何在片段中实现 onBackPressed() 和意图?

    我知道 onBackPressed 是活动中的一种方法 但是 我想在片段中使用该功能 以便当按下后退按钮时 它会通过 Intent 重定向到另一个活动 有什么办法解决这个问题吗 public class News Events fragme

随机推荐

  • 如何提高 where 子句或联接中列的非确定性函数的性能?

    我想提高查询的性能 该查询确实有一个带有非确定性函数调用的 where 子句 Select Count From table1 Where DateDiff month Cast table1 Date As DateTime GetDat
  • 关键词元标签:有用还是浪费时间?

    我总是在我的网站页面上放置元关键字 但我听说有传言说你不必这样做 我应该继续在我的页面上添加关键字还是只是浪费时间 This article说 谷歌多年前就不再使用 META 关键字 因为它们很容易被滥用 Quote 我们的网络搜索 Goo
  • 匿名类型 - 有什么显着特征吗?

    有什么可以用来确定类型是否实际上是匿名类型 例如接口等 目标是创建如下内容 defined like public static T Get
  • 在 ggraph() 的每个面板中复制整个网络的小倍数图

    我想使用以下方法制作网络的小倍数图ggraph 对于网络中的每个节点 我有两个功能 feat1 and feat2 我想想象一下feat1在一个面板中用于整个网络 以及feat2对于另一个面板中的整个网络 每个面板应包含网络中相同位置的所有
  • 如何创建自定义组件并将其添加到 Spring java dsl 中的流程?

    我想创建一个客户组件trace 并想在流程中使用它 就像是CustomFlows from trace get 你能建议我该怎么做吗 似乎 IntegrationFlowDefinition 已关闭且不可扩展 这是一项有趣的技术 但现在我不
  • 为空的 pandas 数据框设置列

    这是我很困惑的事情 import pandas as pd this works fine df1 pd DataFrame columns A B but let s say I have this df2 pd DataFrame th
  • TypeScript 错误 TS1005: ';'预期(二)

    首先 我已经看过有关错误 TS1005 的其他帖子 相同的错误代码 但完全不同 一个简单的let x number 将生成error TS1005编译期间 这并不是像错误消息所说的那样缺少分号 而是编译器无法识别 let 关键字 我读到这可
  • 我如何实现苹果集群模式中的行为(NSString 和 NSCFString)

    我只是出于测试目的编写以下代码 NSString aStr NSString alloc initWithFormat Foo aStr aStr initWithFormat Bar Crashed here 我收到以下错误 initia
  • Flex - 如何制作选项卡面板

    我的应用程序有 3 类按钮 我想要一个选项卡式面板 可以用来在 3 类之间切换 如下所示example 我的应用程序是一个移动应用程序 所以我不能使用 mx 组件 当我尝试搜索移动选项卡式导航等时 我只提出了 viewnavigator 示
  • 使用 NHibernate 映射一对多的最小且正确的方法

    我是 NHibernate 和 C 的新手 所以请温柔一点 我有以下两个 NHibernate 实体 Employee private long id private String name private String empNumber
  • 获得 8 个源 __m256 向量的水平和的 __m256 的最有效方法[重复]

    这个问题在这里已经有答案了 我知道如何求和 m256获得单个求和值 然而 我有 8 个向量 例如 输入 1 a 0 a 1 a 2 a 3 a 4 a 5 a 6 a 7 8 h 0 h 1 h 2 h 3 h 4 a 5 a 6 a 7
  • 如何最好地确定参数是否未发送到 JavaScript 函数

    我现在看到了两种方法来确定参数是否已传递给 JavaScript 函数 我想知道一种方法是否比另一种更好 或者是否一种方法不好用 function Test argument1 argument2 if Test arguments len
  • Airflow 未回填最新运行

    由于某种原因 Airflow 似乎不会触发具有每周计划间隔的 dag 的最新运行 当前日期 date Tue Aug 9 17 09 55 UTC 2016 DAG from datetime import datetime from da
  • chown 和 chmod 后用户的文件夹权限被拒绝

    我有一个目录 home ec2 user vertica1 我正在尝试让用户dbadmin该文件夹中的所有权限 我已经对该文件夹执行了 chown 到 dbadmin 和 chmod 777 但 dbadmin 仍然收到权限被拒绝错误 如果
  • 在 iOS 中关联我的应用程序的自定义文件

    我正在尝试关联我的应用程序创建的自定义文件 它是 XML 以便用户可以通过电子邮件相互发送文件 我已经遵循了这里的优秀教程 如何将文件类型与 iPhone 应用程序关联 该文件名为 XXX checklist 但这不是关联 我相信我的问题出
  • 如何使用itext删除PDF附件

    我是 pdf 新手 我使用以下代码将文件嵌入到 pdf 中 但是 我想编写另一个程序来删除嵌入文件 我可以知道我该怎么做吗 真的感谢 public void addAttachments String src String dest Str
  • 根据反应中另一个选择框的值动态加载选择框的选项

    我正在尝试创建 2 个选择框 其中第一个选择框的选项是固定的 但第二个选择框的选项根据第一个 div 的选定值而变化 例如 第一个选择
  • 如何在 CANoe/CAPL 中包含 .h 或 .dll 文件

    我想在CAPL中集成一个头文件 h或 dll 具体是Visa32 dll visa h或sicl h 来控制万用表34461A 如何在 CANoe 中包含 h 文件或 dll 文件 我创建了一个名为万用表的 ECU 模块 谢谢 在 CAPL
  • 忽略 pexpect 响应中的 ANSI 颜色

    我可以用吗pexpect以忽略输出中的 ANSI 转义码 尤其是颜色 的方式 我正在尝试这样做 expect foo 3 bar 5 but 有时我得到带有 ANSI 颜色数字的输出 问题是我不知道哪些数字有 ANSI 颜色 哪些没有 有没
  • 带有文本和图标的微调器

    在我的应用程序中 我有一个Spinner 可以填充两个Arrays of Strings 存储在我的values strings xml资源 根据两个单选按钮的状态 选择正确数组中的值并填充我的微调器 对于每个字符串数组 我都有一个大小相同