长按以显示同一活动中另一个活动的内容

时间:2016-03-27 06:47:52

标签: java android

我正试图在我的应用程序中使用长按功能模仿Instagram。 我有一个列表视图,当用户点击某个项目时,它会打开一个详细信息活动。

我要做的是在长时间按下项目而不移动到详细信息活动时向用户显示详细信息,我需要在同一活动中将其显示在屏幕中央(就像你长时间按下Instagram上的图片一样)并在用户松开触摸时消失。

我已经厌倦了以下事情:

 view.setOnLongClickListener(new View.OnLongClickListener() {
                    @Override
                    public boolean onLongClick(View v) {
                        Log.d("LongClick", "Long click");
                        Intent in = new Intent(AppointmentsActivity.this,AppointmentsDetailsActivity.class);
                        startActivity(in);
                        return true;
                    }
                });
                view.setOnTouchListener(new View.OnTouchListener() {
                    @Override
                    public boolean onTouch(View v, MotionEvent event) {
                        if (event.getAction() == android.view.MotionEvent.ACTION_DOWN) {
                            Log.d("TouchTest", "Touch down");
                        } else if (event.getAction() == android.view.MotionEvent.ACTION_UP) {
                            Log.d("TouchTest", "Touch up");

                        }
                        return false;
                    }
                });

3 个答案:

答案 0 :(得分:0)

对于这些,您无需启动新活动。你只需拥有数据(首选项或带变量的类)。然后使用简单的对话框,您可以使用或使用片段。因为你不能同时运行2个活动。如果你想开始记录memorie的详细活动,你的发布活动可能会被杀死,而且还不会在后台。

答案 1 :(得分:0)

如用户2043602所说,您不需要开始新活动。

根据我的说法,最好的选择是使用 ViewAnimator 和两种布局, 并动态地将片段添加到第二个布局[不可见,直到您移动到ViewAnimator中的下一个视图]。

在运行时添加片段,您可以使用以下内容:

FragmentTransaction transaction;
transaction = getFragmentManager().beginTransaction();
page_1 newFragment1 = page_1.newInstance("one", "two");//here page_1 is my fragment..which you can easily do by adding a new default blank fragment in android studio
transaction.add(R.id.holder, newFragment1);//R.id.holder is the layout id under whihc you wish to add the fragment..

你可以这样看ViewAnimator:

ViewAnimator viewAnimator;
viewAnimator = (ViewAnimator)findViewById(R.id.group1);//R.id.group1 is the view animator id
viewAnimator.setInAnimation(AnimationUtils.loadAnimation(page2.this, R.anim.first_try));         viewAnimator.setOutAnimation(AnimationUtils.loadAnimation(page2.this, android.R.anim.slide_out_right));

            viewAnimator.showNext(); 

答案 2 :(得分:0)

为此,只需在onLongPress上打开另一个活动作为对话框活动。所以详细活动的内容将显示在当前活动中。 要将活动作为对话框活动打开,您需要将活动主题设置为对话框主题 <活动android:theme =" @android:style / Theme.Dialog" />