0

我有一个奇怪的视图设置fragmentseditText基本上我需要在每次特定editText视图为clicked.

这有效,但只有大约 80% 的时间。

其他 20% 的失败时间,如果再次单击它,它会 100% 隐藏。

就好像你第一次敲击它时,它还没有来得及反应,在键盘弹出之前将片段隐藏起来。

我的 xml 将 Clickable 设置为 true,并将 onClick 设置为隐藏。

我的java在这里:

public void hide(View view) {

        FragmentTransaction transaction = getSupportFragmentManager()
                .beginTransaction();

        try {
            transaction.remove(timerFragment);
            transaction.commit();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

有任何想法吗?

4

3 回答 3

1

我最终在另一个主题中解决了这个问题。我需要一个 onTouch 方法而不是一个 onClick。看这里:onClick 事件没有触发 | 安卓

于 2012-08-10T08:10:51.293 回答
0

我希望它对你有帮助。

试试这个..

    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);    

    final EditText ed1=(EditText)findViewById(R.id.editText1);
        final EditText ed2=(EditText)findViewById(R.id.editText2);



    ed1.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
        // TODO Auto-generated method stub
        call();
        return false;
        }
        });

    ed2.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
        // TODO Auto-generated method stub
        cal();
        return false;
        }
        });
}

public void call() {
        // TODO Auto-generated method stub
        Toast.makeText(getBaseContext(), "Hi", Toast.LENGTH_SHORT).show();
        //insert your codes here..
    }

    public void cal() {
        // TODO Auto-generated method stub
        Toast.makeText(getBaseContext(), "Hello", Toast.LENGTH_SHORT).show();
        //insert your codes here..
    }

我的 xml 文件是:

<EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
<requestFocus />
    </EditText>
于 2012-08-03T05:04:59.930 回答
0

在我看来,你有两个潜在的问题,应该分解你的努力,一次解决一个。第一项任务是,验证您的点击处理程序是否 100% 工作。一旦你这样做了,然后看看验证你的片段代码是 100% 可靠的。

关于片段:

我之前没有看到有人将FragmentTransaction放入try块中,并且您调用的函数不会抛出任何东西(根据文档)。你的catch街区甚至可以到达吗?

您的方法的名称是hide(). 显示和隐藏您的片段,而不是添加或删除它就足够了吗?

于 2012-08-03T06:33:05.013 回答