【问题标题】:how to gettext in listview如何在列表视图中获取文本
【发布时间】:2016-11-26 12:08:56
【问题描述】:

如何在listviewOnItemClickListenergettext??

我无法在 listview toast 工作中获取文本。但 gettext(); 不起作用

这是我的代码。提前致谢。

      listView.setOnItemClickListener(new OnItemClickListener() {
        @SuppressWarnings("unused")
        @Override
        public void onItemClick(AdapterView<?> parent, View view, 
            int position, long id) {
          // ListView Clicked item index
          int itemPosition = position;

          //parent.getChildAt(position - listView.getLastVisiblePosition()).findViewById(R.id.listView1);   
          String itemValue = (String) listView.getItemAtPosition(position);

          //???????????????????????????.getText().toString();

          // Show Alert 
          Toast.makeText(
            getApplicationContext(),
            "Position :" + itemPosition + " ListItem: " + itemValue,
            Toast.LENGTH_LONG
          ).show();
        }
      });

【问题讨论】:

  • 您可以发布您的模型类,或者您可以说出您要发送到 ListView 适配器的数据吗?
  • 顺便说一句,你为什么写SuppressWarnings(unused")
  • 请正确解释问题
  • 发布您的完整代码。您使用的是自定义适配器还是默认适配器?
  • 先生,这是我的适配器 ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, values); listView.setAdapter(适配器);

标签: android listview gettext


【解决方案1】:

只需键入此代码并在您的项目中导入 textview

 String itemValue = (String) listView.getItemAtPosition(position);
 String values=((TextView)view).getText().toString();

【讨论】:

    【解决方案2】:

    试试这个:

    lista.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    
        @Override
    
         public void onItemClick(AdapterView<?> parent, View view, int position, long      id){
    
               TextView txt = (TextView) view.findViewById(R.id.lblId);
               String s = textView.getText().toString();
               Toast.makeText(getActivity(), "Your id "+s, Toast.LENGTH_SHORT).show();
        }
    });
    

    【讨论】:

    • 欢迎来到 SO 并感谢您抽出宝贵时间写下这个问题的答案。我已经冒昧地改进了你帖子的代码格式,但你可以进一步改进它:除了你在答案中输入的任何代码之外,写几句话解释总是一个好主意。解释你的代码为什么以及如何解决最初的问题特别有帮助。你可以很容易地edit你的答案添加这个解释,我建议你这样做。这将有助于 OP 和其他有相同问题的人理解您的答案。
    【解决方案3】:
    You have to get the id of the textView from the view parameter like this
    
    public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
    
    TextView textView =(TextView) view.findViewById(R.Id.YourTextViewId);
    String str=textView.getText();
    
    }
    

    【讨论】:

    • 使用 textview 设置文本
    【解决方案4】:

    我想你可以试试这个:

    @Override
    public void onItemClick(AdapterView<?> view, View v, int position, long arg3) {
    ListView l = (ListView) view;
    String s = (String) l.getItemAtPosition(position);
    }
    

    【讨论】:

      【解决方案5】:

      而不是从视图中获取文本。从数据集values 中获取它,用于将数据绑定到ArrayAdapter

      String itemValue = values[position];
      Toast.makeText(YourActivty.this, "Clicked " + itemValue + " at " + position, Toast.LENGTH_LONG).show();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-11
        • 1970-01-01
        相关资源
        最近更新 更多