Android从LinearLayout转换为CheckedTextView和TextView

时间:2016-12-03 13:28:07

标签: android android-layout

我已经自定义了ListView,其中包含:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:padding="5dp">

<CheckedTextView
    android:id="@+id/txt_lan"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:textSize="25sp" /></LinearLayout>

我希望能够显示CheckedTextView中的文字内容:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(getApplicationContext(), (((TextView)CheckedTextView)view).getText().ToString(), Toast.LENGTH_SHORT).show();

因此,我认为,view包含对LinearLayout的引用。如何访问CheckedTextView中的文字?因为我的方式似乎不起作用

2 个答案:

答案 0 :(得分:0)

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {

     CheckedTextView checkedTextView = (CheckedTextView)arg1.findViewById(R.id.checkedTextView1);
        // do anything to checkedTextView now 
        checkedTextView.toggle();

                    }

了解如何使用参数arg1,这应该有效!

答案 1 :(得分:0)

view参数包含适配器创建的视图,它也应该包含您的自定义布局(see reference)。

所以你可以得到以这种方式检查(Checked)TextView的文本:

((TextView)view.findViewById(R.id.txt_lan)).getText().toString()