如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

Posted

技术标签:

【中文标题】如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用【英文标题】:How to start a new activity from a fragment calss by clicking on Linearlayout within fragment? below is my code but this is not working 【发布时间】:2015-10-22 18:59:11 【问题描述】:

当我单击片段中的线性布局时,它不会给出任何错误,但不会开始新的活动。我的代码有错误吗?请有人帮助我。 我项目的这个片段 xml 文件代码。

Fragment_one.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:orientation="vertical"
    >
    <LinearLayout
        android:layout_
        android:layout_
        android:orientation="vertical"
        android:layout_weight="1"
        >
        <LinearLayout
            android:id="@+id/Lbid"
            android:layout_
            android:layout_marginTop="30dp"
            android:layout_>
            <ProgressBar

                style="?android:attr/progressBarStyleHorizontal"
                android:id="@+id/pbb"
                android:layout_marginLeft="15dp"
                android:layout_
                android:layout_
                android:progress="50"
                android:progressDrawable="@drawable/bidonpb"

                />
            <TextView
                android:layout_
                android:layout_
                android:text="Bid on"
                android:id="@+id/tv"
                android:layout_marginLeft="2dp"
                />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/Lap"
            android:layout_
            android:layout_marginTop="20dp"

            android:layout_>
            <ProgressBar

                style="?android:attr/progressBarStyleHorizontal"
                android:id="@+id/pbap"
                android:layout_marginLeft="15dp"
                android:layout_
                android:layout_
                android:progress="60"
                android:progressDrawable="@drawable/appb"

                />
            <TextView
                android:layout_
                android:layout_
                android:text="Awaiting Payments"
                android:layout_marginLeft="2dp"
                />
        </LinearLayout>
        <LinearLayout
            android:id="@+id/LO"
            android:layout_
            android:layout_marginTop="20dp"

            android:layout_>
            <ProgressBar

                style="?android:attr/progressBarStyleHorizontal"
                android:id="@+id/pbo"
                android:layout_marginLeft="15dp"
                android:layout_
                android:layout_
                android:progress="20"
                android:progressDrawable="@drawable/opb"

                />
            <TextView
                android:layout_
                android:layout_
                android:text="Overdue"
                android:layout_marginLeft="2dp"
                />
        </LinearLayout>
        <LinearLayout

            android:layout_
            android:layout_marginTop="20dp"
            android:id="@+id/LA"
            android:layout_>
            <ProgressBar

                style="?android:attr/progressBarStyleHorizontal"
                android:id="@+id/pba"
                android:layout_marginLeft="15dp"
                android:layout_
                android:layout_

                android:progress="45"
                android:progressDrawable="@drawable/assignedpb"

                />
            <TextView
                android:layout_
                android:layout_
                android:text="Assigned"
                android:layout_marginLeft="2dp"
                />

        </LinearLayout>

    </LinearLayout>
</LinearLayout>

我项目的这个片段java类代码。

FragmentOne.java

  info.androidhive.listviewfeed;
 import android.app.Fragment;
 import android.content.Intent;
 import android.os.Build;
 import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.LinearLayout;
 import android.widget.ProgressBar;

public class FragmentOne extends Fragment 

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,     Bundle savedInstanceState) 

        View view = inflater.inflate(R.layout.fragment_one, container, false);
        LinearLayout lbid =(LinearLayout) view.findViewById(R.id.Lbid);

        lbid.setOnClickListener(new View.OnClickListener() 

            @Override
            public void onClick(View v) 
                Intent intent = new Intent(getActivity(), ProjectDetails.class);
               startActivity(intent);
            
        );

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

    

【问题讨论】:

请发布清单 【参考方案1】:

您的onCreateView() 方法有问题。你回来了

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

这会在没有您添加的侦听器的情况下创建一个新视图。你应该这样做

return view;

因为视图是包含您添加的侦听器的布局的视图。

【讨论】:

非常感谢您拯救了我的一天。我已经浪费了一个。【参考方案2】:

您应该根据自己的意图使用 Intent.FLAG_ACTIVITY_NEW_TASK。

//像这样 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

【讨论】:

以上是关于如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何从片段内的列表视图打开链接网址?

关于打开一个新活动以响应对片段内的 RecyclerView 项目的点击

如何删除片段布局中的任何位置单击该单击的主活动按钮

从片段中ListView的onItemClick开始Activity

Android开发——UI_片段

如何从对话框片段中打开新活动