【问题标题】:Toast method makeText() not solvedToast 方法 makeText() 未解决
【发布时间】:2016-03-16 09:39:42
【问题描述】:

使用ToastmakeText() 方法时出错

 import android.content.Context;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.RatingBar;
 import android.widget.Toast;

 public class RateME extends Fragment {


public RateME() {
    // Required empty public constructor
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View v= inflater.inflate(R.layout.fragment_rate_me, container, false);
    final RatingBar ratingBar_default = (RatingBar) v.findViewById(R.id.ratingbar_default);
    ratingBar_default.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
        @Override
        public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
         if (rating > 2 )

这里出现错误 我试过了

 Toast toast = Toast.makeText(RateME.this, "Value of:" + String.valueOf(rating), Toast.LENGTH_LONG).show();

也试过了

Toast toast = new Toast.makeText(RateME.this, "Value of:" + String.valueOf(rating), Toast.LENGTH_LONG).show();


    {
                 Toast.makeText(RateME.this, "Value of:" + String.valueOf(rating), Toast.LENGTH_LONG).show();
             }
                else
             {
                 //Toast.makeText(RateME.this, "here"+String.valueOf(rating),Toast.LENGTH_SHORT).show();
             }
            }
        });

    return v;
    }

 }

这里是logcat

错误:(35, 23) 错误: 找不到合适的方法 makeText(RateME,String,int) 方法 Toast.makeText(Context,int,int) 是 不适用(实际参数 RateME 无法转换为 Context 通过方法调用转换)方法 Toast.makeText(Context,CharSequence,int) 不适用(实际 参数 RateME 无法通过方法调用转换为 Context 转换)

【问题讨论】:

  • fragment 不是Context 你需要通过activity
  • 请在此处提问之前进行一些搜索。这是一个 5 年前的问题,您有很多答案
  • @DJphy 道歉先生,我在搜索后发布了它..我从过去三天开始处理这个错误......作为建议的答案,我还提到我也尝试过,但是那个时候没有工作,所以经过所有尝试后我想把它放在这里......再次道歉......
  • 这不是你的错.. 但它的答案的错.. 他们很少有人破坏 stackoverflow 政策的投票:) 冷静

标签: android


【解决方案1】:

您需要在片段中使用 getActivity() 而不是 RateME.this

 Toast.makeText(getActivity(), "Value of:" + String.valueOf(rating), Toast.LENGTH_LONG).show();

在片段中尝试这种方式。

【讨论】:

  • @rushDroid...也试过了,但没用,但现在可以了,谢谢
  • 欢迎@FaridRaja,如果它对您有用,则标记为正确 :)
【解决方案2】:

在使用片段时试试这个:

Toast.makeText(getActivity(), "Value of:" + String.valueOf(rating), Toast.LENGTH_LONG).show();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    • 2017-09-03
    相关资源
    最近更新 更多