Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.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
Android java.lang.IllegalStateException:指定的子级已具有父级。必须对子对象&x27;调用removeView();她先是父母_Android_Horizontalscrollview - Fatal编程技术网

Android java.lang.IllegalStateException:指定的子级已具有父级。必须对子对象&x27;调用removeView();她先是父母

Android java.lang.IllegalStateException:指定的子级已具有父级。必须对子对象&x27;调用removeView();她先是父母,android,horizontalscrollview,Android,Horizontalscrollview,我正在使用水平滑动屏幕的方式处理horizontalscrollview,我想在当前视图上动态添加视图,但它没有发生,我在代码中犯了什么错误。。这是我的密码 public class MainActivity extends Activity implements OnGestureListener { private GestureDetector gDetector; private MyHorizontalScrollView scroll

我正在使用水平滑动屏幕的方式处理horizontalscrollview,我想在当前视图上动态添加视图,但它没有发生,我在代码中犯了什么错误。。这是我的密码

    public class MainActivity extends Activity implements OnGestureListener {

        private GestureDetector gDetector;
            private MyHorizontalScrollView scrollView;
            private View app;

            @TargetApi(11)      
            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);

                LayoutInflater inflater = LayoutInflater.from(this);
                setContentView(inflater.inflate(R.layout.sample, null));
//here I edited..
     scrollView = (MyHorizontalScrollView) findViewById(R.id.myScrollView_);
                LinearLayout layout = new LinearLayout(this);
                scrollView.addView(layout);

                ListView listView = new ListView(this);
                initListView(this, listView, "Item ", 30, android.R.layout.simple_list_item_1);
                layout.addView(listView);

                //setContentView(R.layout.sample);
                if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
                    getActionBar().hide();
                }
                findViewById(R.id.sample_button).setOnClickListener(
                        new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                int width = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, getResources().getDisplayMetrics());
                                SlideoutActivity.prepare(MainActivity.this, R.id.inner_content, width);
                                startActivity(new Intent(MainActivity.this,
                                        MenuActivity.class));
                                overridePendingTransition(0, 0);
                            }
                        });
                gDetector = new GestureDetector(this);
            }
            public static void initListView(Context context, ListView listView,String prefix, int numItems, int layout ){

                // By using setAdpater method in listview we an add string array in list.
                String[] arr = new String[numItems];
                for(int i = 0; i< arr.length; i++){

                    arr[i] = prefix + (i +1);
                }

                listView.setAdapter(new ArrayAdapter<String>(context, layout, arr));
                listView.setOnItemClickListener(new OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> parent, View view, int position,
                            long id) {
                        Context context = view.getContext();

                        String msg = "item[" + position + "]= " + parent.getItemIdAtPosition(position);

                        Toast.makeText(context, msg, 1000).show();
                        System.out.println(msg);

                    }
                });
            }
            @Override
            public boolean onDown(MotionEvent arg0) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean onFling(MotionEvent start, MotionEvent finish, float xVelocity,
                    float yVelocity) {
                if(start.getRawX() < finish.getRawX()){

                    /*((ViewGroup)scrollView.getParent()).removeView(scrollView);

                    LayoutInflater inflater = LayoutInflater.from(this);

                    scrollView = (MyHorizontalScrollView) findViewById(R.id.myScrollView_);
                    app = inflater.inflate(R.layout.horz_scroll_app, null);

                    ListView listView = (ListView) app.findViewById(R.id.list);
                    initListView(this, listView, "Item ", 30, android.R.layout.simple_list_item_1);
                    setContentView(listView);*/

                    TextView toolbartext = (TextView)findViewById(R.id.text);
                    toolbartext.setText("New text for samples from left to right");
                    Toast.makeText(getApplicationContext(), "from left to right Swipe working", Toast.LENGTH_LONG).show();
                }else{
                    TextView toolbartext = (TextView)findViewById(R.id.text);
                    toolbartext.setText("New text for samples from right to left");
                    Toast.makeText(getApplicationContext(), "from right to left Swipe working", Toast.LENGTH_LONG).show();
                }
                return true;
            }

            @Override
            public void onLongPress(MotionEvent arg0) {
                // TODO Auto-generated method stub

            }

            @Override
            public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,
                    float arg3) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public void onShowPress(MotionEvent arg0) {
                // TODO Auto-generated method stub

            }

            @Override
            public boolean onSingleTapUp(MotionEvent arg0) {
                // TODO Auto-generated method stub
                return false;
            }

            @Override
            public boolean onTouchEvent(MotionEvent event) {
                // TODO Auto-generated method stub
                return gDetector.onTouchEvent(event);
            }
        }

我想您是想
将视图添加到
水平滚动视图

ScrollView
只能有一个子视图

因此,您可以先将
线性/相对视图添加到
滚动视图
,然后将其他
视图
添加到此
布局

代码:

像这样的

HorizontalScrollView hsv = findViewById(R.id.mHSV);
//add a linear layout to your scrollview
LinearLayout layout = new LinearLayout (this);
hsv.addView(layout);
//add the remaining views to this linear layout
TextView textView = new TextView(this);
layout.addView(textView);

谢谢你的快速重播…我如何添加,我是android新手请详细说明我或如果你有任何小代码示例,请放在这里哇…酷。。。!您刚刚完成了…:)但这里还有一个问题,我如何在Horizontalscrollview中添加滑动操作。。??
HorizontalScrollView hsv = findViewById(R.id.mHSV);
//add a linear layout to your scrollview
LinearLayout layout = new LinearLayout (this);
hsv.addView(layout);
//add the remaining views to this linear layout
TextView textView = new TextView(this);
layout.addView(textView);