Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法将textview添加到此xml代码?_Java_Android_Eclipse_Layout_Textview - Fatal编程技术网

Java 无法将textview添加到此xml代码?

Java 无法将textview添加到此xml代码?,java,android,eclipse,layout,textview,Java,Android,Eclipse,Layout,Textview,hi I get I源代码,用于为应用程序的文本添加可选的文本视图选项。现在我想编辑这个源代码,我想添加更多的文本视图,但当我添加它时,它会给我错误。所以我的问题是,我怎样才能在下面的源代码中添加更多的文本视图 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:

hi I get I源代码,用于为应用程序的文本添加可选的文本视图选项。现在我想编辑这个源代码,我想添加更多的文本视图,但当我添加它时,它会给我错误。所以我的问题是,我怎样才能在下面的源代码中添加更多的文本视图

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:background="#ffffff"
        >
    <com.zyz.mobile.example.ObservableScrollView
            android:id="@+id/scroller"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fillViewport="true">
        <com.zyz.mobile.example.SelectableTextView
                android:id="@+id/main_text"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textColor="#000000"
                android:textSize="20sp"
                android:bufferType="spannable"
                android:text="@string/text">



          <TextView 
                android:id="@+id/main_text2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textColor="#000000"
                android:textSize="20sp"
                android:bufferType="spannable"
                android:text="@string/text"/>
          </com.zyz.mobile.example.SelectableTextView>
                 </com.zyz.mobile.example.ObservableScrollView>
我的主要活动是什么

public class MainActivity extends Activity {

    private SelectableTextView mTextView;
    private int mTouchX;
    private int mTouchY;
    private final static int DEFAULT_SELECTION_LEN = 5;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // make sure the TextView's BufferType is Spannable, see the main.xml
        mTextView = (SelectableTextView) findViewById(R.id.main_text);
        mTextView.setDefaultSelectionColor(Color.YELLOW);


        mTextView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
                showSelectionCursors(mTouchX, mTouchY);
                return true;
            }
        });
        mTextView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mTextView.hideCursor();

            }
        });
        mTextView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                mTouchX = (int) event.getX();
                mTouchY = (int) event.getY();

                return false;
            }
        });
    }

    private void showSelectionCursors(int x, int y) {
        int start = mTextView.getPreciseOffset(x, y);

        if (start > -1) {
            int end = start + DEFAULT_SELECTION_LEN;
            if (end >= mTextView.getText().length()) {
                end = mTextView.getText().length() - 1;


            }
            mTextView.showSelectionControls(start, end);
        }
    }
}

请接受上面@njzk2的评论-SelectableTextView不是视图组,因此不能包含子视图。您需要从SelectableTextView中删除TextView,然后在SelectableTextView上调用setText

另一个问题:我猜ObserviceScrollView扩展了Android的原生ScrollView,对吗?如果这是真的,ObservableScrollView只能包含1个直接子级。在这种情况下,您需要像RelativeLayout或LinearLayout这样的视图组来保存其他所有内容。尝试将ObservableScrollView设置为父对象:

<?xml version="1.0" encoding="utf-8"?>
<com.zyz.mobile.example.ObservableScrollView  xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scroller"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true">

        <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="match_parent"
             android:orientation="vertical"
             android:background="#ffffff">

            <com.zyz.mobile.example.SelectableTextView
                android:id="@+id/main_text"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textColor="#000000"
                android:textSize="20sp"
                android:bufferType="spannable"
                android:text="@string/text"/>

        </LinearLayout>

</com.zyz.mobile.example.ObservableScrollView>

然后将您的ObservableScrollView添加到LinearLayout

您的SelectableTextView不是子类ViewGroup,因此您必须在末尾用/>关闭标记,如:

   <com.zyz.mobile.example.SelectableTextView
            android:id="@+id/main_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textColor="#000000"
            android:textSize="25sp"
            android:bufferType="spannable"
            android:text="@string/text"
            />
然后从底部拆下此零件:

  </com.zyz.mobile.example.SelectableTextView>
因为它不是一个视图组!不能在其中包含其他视图


因此,您遇到的问题不是添加另一个textview,而是在您的布局中错误地实现了此特殊的SelectableTextView,这就是为什么您的应用程序崩溃的原因,如果出现错误,可以告诉我如何在此布局中添加textview吗?问题现在已编辑…错误和java代码也已添加。请不要将textview放在SelectableTextView中。它不是一个视图组。仍然给出相同的错误。您是否在对您的问题的评论中尝试了@njzk2的解决方案?我想他可能是对的。虽然我上面的回答仍然可以解决代码的问题,但我相信,这是一个不同的问题。通过添加一个类似的视图,这件事就起作用了。现在,如何为这两个可选择的文本视图编写java代码以使其可选择?SelectableTextView做什么而TextView不做什么?它是TextView的子类吗?根据文档:要允许用户复制TextView的部分或全部值并将其粘贴到其他位置,请将XML属性android:textIsSelectable设置为true或调用setTextIsSelectabletrue。textIsSelectable标志允许用户在TextView中做出选择手势,从而触发系统内置的复制/粘贴控件。因此,您可以很容易地选择普通TextView的文本。如果这就是你想要的,为什么不使用原生文本视图呢?是的,我知道,但我想要的是在我的应用程序中为用户添加一个突出显示选项。因此,用户可以为自己的文本高亮显示可选文本。我可以用一个简单的文本视图吗?我想要一个突出显示选项,就像在google play book中一样。好吧,我添加了另一个相同的可选文本视图。现在假设我想要可选时有七到十个不同的文本视图,那么我如何为所有这些可选文本视图设置java代码?我应该为其他文本视图重复相同的java代码,还是可以在一个代码中完成?编写您的视图。OnLongClickListener一次,并将同一个侦听器附加到不同的文本视图
  </com.zyz.mobile.example.SelectableTextView>