android - onClickListener 在 fragment 中不起作用

标签 android android-fragments onclicklistener

我在 fragment 中的 onClicklistener 方面遇到了一些问题。如果我点击按钮什么也不会发生。我既没有从 Logcat 中的 onClicklistener 收到消息,屏幕上也没有出现 Toast,但我在代码中找不到错误。有什么想法吗?

如果有任何帮助,我将不胜感激!多谢!抱歉我的英语不好

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.Button;
import android.widget.Toast;
import android.util.Log;

public class InputFragment extends Fragment
{   
EditText input_text;
String text;
Button translate_button;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{ 
    View InputFragmentView = inflater.inflate(R.layout.input_fgmt, container, false);

    input_text = (EditText) InputFragmentView.findViewById(R.id.input_field);

    translate_button = (Button) InputFragmentView.findViewById(R.id.translate);


    translate_button.setOnClickListener(new OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            Log.d("Test", "onClickListener ist gestartet");
            Toast.makeText(getActivity().getApplicationContext(), "Test", Toast.LENGTH_LONG).show();
            saveInString();

        }
    });

    return inflater.inflate(R.layout.input_fgmt, container, false);
}

public void saveInString()
{
    if(text.equals(null))
    {
        Toast.makeText(getActivity().getApplicationContext(), "Das Feld ist leer!", Toast.LENGTH_SHORT).show();
    }
    else
    {
        Toast.makeText(getActivity().getApplicationContext(), "Speichern...", Toast.LENGTH_LONG).show();
        text = input_text.getText().toString();
        Toast.makeText(getActivity().getApplicationContext(), "Fertig", Toast.LENGTH_SHORT).show();
    }

}
}    

最佳答案

我认为问题出在您的代码中

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{ 
.....
....
 //problem is here below line
 return inflater.inflate(R.layout.input_fgmt, container, false);
}

返回已经膨胀的 View

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
    { 
        View inputFragmentView = inflater.inflate(R.layout.input_fgmt, container, false);
    .....
    ....

     return inputFragmentView;
    }

关于android - onClickListener 在 fragment 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61225625/

相关文章:

android - 设置 ListView 项的颜色

android - ICS 上的 HLS 支持

android - 如何在PreferenceFragmentCompat中实现RingtonePreference?

android - 在android中从第三个 fragment 返回到第一个 fragment

java - 在父 Activity 中进行权限检查后加载 fragment

android - Fragment交易到底在哪里实现?

java - Android:Java 不能引用非最终变量

android - 自定义 ListView 的 onClickListener

JavaScript onclick 函数只工作一次(非常简单的代码)

java - 更改屏幕后停止 MediaPlayer