【问题标题】:Editing TextView text inside of listView via a button通过按钮在 listView 内编辑 TextView 文本
【发布时间】:2012-08-09 17:26:48
【问题描述】:

我有 ListView。我也有按钮。它们位于RelativeLayout 内部。我希望能够通过按钮 onClick(View v) 更改所选 ListView 项目的 TexView 文本。 ListView 布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <ImageView
        android:id="@+id/icon"
        android:layout_width="22px"
        android:layout_height="22px"
        android:layout_marginLeft="4px"
        android:layout_marginRight="10px"
        android:layout_marginTop="4px"
        android:src="@drawable/ic_launcher" >
    </ImageView>

    <TextView
        android:id="@+id/label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@+id/label"
        android:textSize="20px" >
    </TextView>

</LinearLayout>

主要活动:

public class MainActivity extends Activity {
    private TextView mTextView;
    private ListView my_list;
    private MyArrayAdapter adapt;
    Button mybutton;

    public void onCreate(Bundle icicle) {
        super.onCreate(icicle); 

        String[] mContacts = {
                "Jacob Anderson dsfd sdfdf sdfsd sdfds", "Emily Duncan", "Michael Fuller", 
                "Emma Greenman", "Joshua Harrison", "Madison Johnson",
                "Matthew Cotman", "Olivia Lawson", "Andrew Chapman", 
                "Daniel Honeyman", "Isabella Jackson", "William Patterson", 
                "Joseph Godwin", "Samantha Bush", "Christopher Gatema55"};

        setContentView(R.layout.activity_main);
        my_list=(ListView)findViewById(R.id.listView1);
        adapt=new MyArrayAdapter(this, mContacts, 0);
        my_list.setAdapter(adapt);

        mybutton = (Button)findViewById(R.id.button1);
        mybutton.setOnClickListener(new OnClickListener() {     
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

如果我想像这样编辑 TextView 应该怎么做:

        SpannableString text = new SpannableString("Lorem ipsum dolor sit amet");
    text.setSpan(new ForegroundColorSpan(Color.RED), 0, 5, 0);
    TextViewOfSelectedItem.setText(text, BufferType.SPANNABLE);

如何通过项目位置获取 ListView 项目的 TextViewOfSelectedItem 或 TextView?

【问题讨论】:

  • 您可以更改字符串数组中的字符串(单击按钮后)并重新加载适配器。
  • 我已经更新了这个问题。我想访问 TextView 进行编辑
  • 使用列表视图项(即视图)的getChildAt(int index) 方法。通常你会在调试器中看到这些项目。
  • "使用您的 listview 项(即视图)的 getChildAt(int index) 方法。" - 是的,它给了我做我想做的事情的方法。看来问题已经解决了。谢谢。
  • BTW getChildAt(int index) 访问显示在屏幕上的项目,而 getItemAtPosition(int index) 访问所有 ListView 项目中的项目。

标签: android android-listview android-arrayadapter


【解决方案1】:

您可以使用setOnItemClickListener() 获取所选项目的文本。你可以这样用。

    my_list.setOnItemClickListener(new OnItemClickListener() {

  public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
 long arg3) {
         // TODO Auto-generated method stub
    String  getSelectedTextOfList = yourList.get(pos); // here you can get selected item.
 }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-26
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    相关资源
    最近更新 更多