【问题标题】:How to add OnClickListener for grid view which opens new activity?如何为打开新活动的网格视图添加 OnClickListener?
【发布时间】:2017-11-20 13:24:39
【问题描述】:

我为 gridview 添加了 OnCLickListener,但它返回错误。 我在哪里做错了。 我已经使用意图来处理这个 Listener。

Activity.java

public class AlbumsActivity extends Fragment{

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

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
        @SuppressLint("InflateParams") ViewGroup root = (ViewGroup) inflater.inflate(R.layout.grid_layout, null);
        GridView gridView=(GridView)root.findViewById(R.id.grid_view);
        gridView.setAdapter(new ImageAdapter(getActivity()));
        gridView.setOnItemClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // Intent is what you use to start another activity
                Intent myIntent = new Intent(getActivity(), NowPlayingActivity.class);
                startActivity(Intent);
            }

        });
        return root;
    }
}

【问题讨论】:

  • 更新您的代码并向我们提供更多信息
  • 我已经编辑了代码中的更改。告诉表达式expexted startActivity(Intent)的代码行显示错误;
  • 不是Intent,必须使用对象:Intent myIntent = new Intent(getActivity(), NowPlayingActivity.class); startActivity(myIntent);
  • 谢谢。我已修复,但应用程序现在崩溃了。
  • 可能你的 NowPlayingActivity 活动没有在你的 AndroidManifest 中声明

标签: java android gridview onclicklistener


【解决方案1】:

解决这个问题:

Intent myIntent = new Intent(getActivity(), NowPlayingActivity.class);
startActivity(Intent);

改为:

Intent myIntent = new Intent(getActivity(), NowPlayingActivity.class);
startActivity(myIntent);

【讨论】:

    【解决方案2】:

    您应该使用gridView.setOnItemClickListener 方法而不是setOnClickListener

    另外,请在以后的帖子中添加错误详细信息(堆栈跟踪)。

    【讨论】:

    • 我已经按照你说的实现了代码,部分错误已经修复。但现在它显示代码 startActivity(Intent); 的错误;
    【解决方案3】:

    你应该使用“myIntent”

     Intent myIntent = new Intent(getActivity(), NowPlayingActivity.class);
     startActivity(myIntent);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 1970-01-01
      • 2022-08-17
      • 1970-01-01
      相关资源
      最近更新 更多