我的onClick方法只能在80%的时间内工作

时间:2012-08-02 22:55:57

标签: java android android-fragments android-fragmentactivity

我有一个奇怪的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();
        }

    }

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

我最终在另一个主题中解决了问题。我需要一个onTouch方法而不是onClick。看这里:onClick event is not triggering | Android

答案 1 :(得分: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>

答案 2 :(得分:0)

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

关于片段:

我之前没有看到有人将FragmentTransaction放入try块,并且您调用的函数不会抛出任何内容(根据文档)。您的catch区块是否可以访问?

您的方法名称为hide()。是否足以显示和隐藏您的片段,而不是添加或删除它?