2012-08-09 66 views
0

我有ListView.I也有按钮。它们在RelativeLayout中。我希望能够通过onClick(View v)按钮来更改所选ListView项目的TexView文本。 ListView的布局:通过按钮编辑ListView里面的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); 

我怎样才能得到的TextViewOfSelectedItem或TextView的ListView项目通过项目位置?

+0

您可以更改字符串数组中的字符串(单击按钮后)并重新加载适配器。 – iTurki 2012-08-09 17:40:22

+0

我已经更新了这个问题。我想访问一个TextView进行编辑 – Andrew 2012-08-09 18:04:04

+0

使用listview项目(这是view)的'getChildAt(int index)'方法。通常你会在调试器中看到这些项目。 – 2012-08-09 18:12:22

回答

0

您可以使用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. 
} 
});