相关疑难解决方法(0)

如何将变量从Activity传递给Fragment,并将其传回去?

我目前正在制作一个Android应用程序,我想在活动和片段之间传递一个日期.我的活动有一个按钮,用于打开片段:DatePickerFragment.

在我的活动中,我显示了一个日期,我想用片段修改它.所以我想将日期传递给datepicker,然后将其发送回活动.

我尝试了很多解决方案,但都没有.简单的方法会传递一个参数,但这不能用碎片来完成.

android android-fragments android-activity

126
推荐指数
5
解决办法
13万
查看次数

从活动中设置片段的参数

我想将我的活动中的参数传递给嵌入到活动中的片段.片段静态嵌入xml布局中.我试着像这样调用setArgument():

setContentView(R.layout.detail_activity);
DetailFragment detailFragment = (DetailFragment) getFragmentManager().findFragmentById(R.id.detailFragment);
detailFragment.setArguments(getIntent().getExtras());
Run Code Online (Sandbox Code Playgroud)

但是已经太晚了,因为必须在片段创建后立即调用setArguments.唯一的是我看到getArguments()和更改捆绑.有更好的方法吗?

android android-fragments android-activity

24
推荐指数
2
解决办法
3万
查看次数

Android - 如何将数据从活动传递到片段?

我需要将数据从活动传递到片段.我知道我可以使用bundle,但是一旦我传递数据,我就无法在不调用和再次创建片段的情况下发送数据.

在我的活动中,有些东西可能会被更改,我需要通知我的片段这些更改而不重新创建片段.

android android-fragments android-activity

9
推荐指数
2
解决办法
2万
查看次数

如何将数据从Activity发送到Fragment

我知道这里有很多关于这方面的话题.我也多次阅读文档,但我找不到将数据从活动传递到片段的最佳方法.

我希望能够使用带选项卡的滑动视图在两个不同的布局(列表和地图)中显示我的可搜索活动的结果.我必须将2个数据传递给片段:"currentLocation"是当前用户位置,"result"是对象列表.

我已经省略了代码的某些部分,以使其更容易理解.

SearchableActivity.java

public class SearchableActivity extends ActionBarActivity implements TabListener {

    List<PlaceModel> result = new ArrayList<PlaceModel>();
    private SearchView mSearchView;
    private String currentLocation;

    AppSectionsPagerAdapter mAppSectionsPagerAdapter;
        ViewPager mViewPager;

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

    setContentView(R.layout.activity_searchable);

    final ActionBar actionBar = getSupportActionBar();
    actionBar.setHomeButtonEnabled(true);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    mAppSectionsPagerAdapter = new AppSectionsPagerAdapter(getSupportFragmentManager());

    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(mAppSectionsPagerAdapter);
    mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
        @Override
        public void onPageSelected(int position) {
            actionBar.setSelectedNavigationItem(position);
        }
    });

    actionBar.addTab(actionBar.newTab().setText("List").setTabListener(this));
    actionBar.addTab(actionBar.newTab().setText("Map").setTabListener(this));

    // get currentLocation here

    handleIntent(getIntent());
}

@Override
protected void onNewIntent(Intent intent) {
    handleIntent(intent); …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-fragments android-view android-tabs

7
推荐指数
4
解决办法
9万
查看次数

如何将参数从 Activity 传递给 Fragment

我有一个通过采用者类实例化和填充 Fragment 的活动。我想将值/对象传递给这个 Fragment 采用者类,以便我可以指定布局等。

我曾尝试使用 setArgument 方法传递包,但我的代码爆炸了,不知道为什么。据我了解,我可以在采用者类的 onCreate 方法中收集包。我看到在注释代码后立即正确设置了参数,但遗憾的是在那之后它崩溃了,我不明白为什么。如果我删除捆绑代码,它不会崩溃。:(

下面是我的代码,有人知道我应该把捆绑代码放在哪里,注释掉了吗?

public class LoginScreen extends ActionBarActivity {
    private final String ARG_SELECTED_LAYOUT_ID = "selectedLayoutId";
private final int DEFAULT_LAYOUT = R.layout.layout_list;

private int mSelectedLayoutId;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);

    ActionBar actionBar = getSupportActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false);

    mSelectedLayoutId = DEFAULT_LAYOUT;
    if (savedInstanceState != null) {
        mSelectedLayoutId = savedInstanceState.getInt(ARG_SELECTED_LAYOUT_ID);
    }

    addLayoutTab(
            actionBar, R.layout.layout_list, R.drawable.ic_list, "list");
    addLayoutTab(
            actionBar, R.layout.layout_grid, R.drawable.ic_grid, "grid");
    addLayoutTab(
            actionBar, R.layout.layout_staggered_grid, R.drawable.ic_staggered, "staggered");
    addLayoutTab(
            actionBar, R.layout.layout_spannable_grid, R.drawable.ic_spannable, "spannable");
} …
Run Code Online (Sandbox Code Playgroud)

android bundle fragment android-fragments

5
推荐指数
2
解决办法
2万
查看次数

将数据从“活动”传递到“选项卡式布局片段”?

我有两个活动。第一个是包含列表视图的普通活动,第二个是带有两个选项卡的选项卡式布局。一个是“描述”选项卡,另一个是“样本代码”选项卡。

我为每个创建了两个单独的片段,即“ OneFragment”和“ TwoFragment”。我需要的是,当用户单击我正常活动中的某个项目时,该项目将存储在字符串中,并且该字符串应传递到选项卡式布局中,并应显示在OneFragment中,即“说明”选项卡

(例)。我的列表包含{“ Android”,“ Studio”},如果用户单击Android,则此文本应传递到说明标签,并使用TextView显示该文本。请帮我。在这里,我包括我各自的代码。

NormalActivity-> ListActi.java

   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list);
        lv = (ListView) findViewById(R.id.listView);
        final List<String> ListElementsArrayList = new ArrayList<String>(Arrays.asList(listElements));
        final ArrayAdapter<String> adapter = new ArrayAdapter<String>
                (getApplicationContext(), android.R.layout.simple_list_item_1, ListElementsArrayList);
        lv.setAdapter(adapter);
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //Toast.makeText(getApplicationContext(), listElements[position],Toast.LENGTH_LONG).show();
                s = listElements[position];
                if(position == 1){
                    s = listElements[position];
                    Bundle bundle = new Bundle();
                    bundle.putString("ClickedItem", listElements[position]);
                    OneFragment fragobj = new OneFragment();
                    TwoFragment fag = new TwoFragment(); …
Run Code Online (Sandbox Code Playgroud)

java android android-intent android-fragments android-tabactivity

3
推荐指数
1
解决办法
3276
查看次数

如何将数据传递给BottomSheetDialogFragment

我在RecyclerView. 当我单击列表项启动时BottomSheetDialogFragment

如何在 kotlin 中将列表项数据传递给 BottomSheetDialogFragment

 BottomSheetFragment().show(context!!.supportFragmentManager, "BottomSheetFragment")

class BottomSheetFragment() : BottomSheetDialogFragment() {

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        var view = inflater.inflate(R.layout.coin_detail_lauout, container, false)
        return view
    }
}
Run Code Online (Sandbox Code Playgroud)

android kotlin

3
推荐指数
1
解决办法
5466
查看次数

将Activity中的数据与ViewPager传递给Fragments

我研究了很多,但没有找到解决方案.

这是我的活动:

public class ProfileActivity extends AppCompatActivity {



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



        setContentView(R.layout.activity_profile);



        //region FindViews
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        viewPager = (ViewPager) findViewById(R.id.viewpager);
        tabLayout = (PagerSlidingTabStrip) findViewById(R.id.tabs);
        //endregion

        //region ViewPager
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        setupViewPager(viewPager);
        viewPager.setOffscreenPageLimit(5);
//        tabLayout.setupWithViewPager(viewPager);
        tabLayout.setViewPager(viewPager);
        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                switch (position) {
                    case 0:
                        changeColor(ContextCompat.getColor(getApplicationContext(), R.color.theme_red_primary));
                        break;
                    case 1:
                        changeColor(ContextCompat.getColor(getApplicationContext(), R.color.theme_yellow_primary));
                        break;
                    case 2:
                        changeColor(ContextCompat.getColor(getApplicationContext(), R.color.theme_green_primary));
                        break;
                    case 3: …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager

2
推荐指数
1
解决办法
3909
查看次数

在android上将活动之间的值传递给片段

活动:

@Override
 public void onTabSelected(Tab tab, FragmentTransaction ft) {
 // on tab selected
 // show respected fragment view
  Log.v("Test", "Menjalankan intent antar activity ke fragment");
  Bundle bundle=new Bundle();
  //String message= "From activity";
  int nilai=10;
  bundle.putInt("Nilai", nilai);
  Log.v("Testing", "Data yang akan dikirim "+nilai);
    //set Fragmentclass Arguments
  Lirik f=new Lirik();
  f.setArguments(bundle);

  viewPager.setCurrentItem(tab.getPosition());
 }
Run Code Online (Sandbox Code Playgroud)

片段代码:

package com.example.egmim;

import com.example.support.dbAdapter;


import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;



public class Lirik extends Fragment{


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle …
Run Code Online (Sandbox Code Playgroud)

java android android-fragments android-activity

1
推荐指数
1
解决办法
1万
查看次数

使用Parcelable对象将数据发送到Fragment而不是Activity

我想用我制作的Parcelable类将数据发送到Fragment.

我知道这是你在使用Activity时所做的事情(ObjectA是扩展Parcelable的类):

ObjectA obj = new ObjectA();   
// Set values etc.   
Intent i = new Intent(this, MyActivity.class); 
i.putExtra("com.package.ObjectA", obj);   
startActivity(i); 
Run Code Online (Sandbox Code Playgroud)

但由于你不能使用碎片的意图,我不知道如何做到这一点.

我甚至可以使用Parcelable类吗?如果没有,我应该使用什么?我有可能,怎么样?

编辑/更新:

我已经更新了你的建议,但仍然没有得到一切.

这是我们用来创建列表视图的片段:

package com.tsjd.HotMeals;

import java.util.ArrayList;

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.ListView;

import com.example.tabtest.R;

public class RecipeListViewFragment extends Fragment {

    ArrayList<String> titles;
    ArrayList<String> descriptions;
    ArrayList<String> images;


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

        RecipeListViewParcer object = getArguments().getParcelable("extraObject");
        titles = object.getTitles();
        descriptions = object.getDescriptions();
        images = object.getImages();
    }

    @Override
    public View onCreateView(LayoutInflater …
Run Code Online (Sandbox Code Playgroud)

java android parcelable android-intent android-fragments

1
推荐指数
1
解决办法
3670
查看次数

如何在Android中将Intent从Activity变为Fragment?

喜欢这个从片段到活动的良好运作.

Intent intent = new Intent(Location.this,MessageActivity.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

android

1
推荐指数
1
解决办法
4万
查看次数

从片段中的活动中获取数据

我在我的活动中设置了一个片段,但我想知道如何将活动中的数据传递到片段中?

例如,这是我的代码:

    public class MyFragment extends Fragment 
{   
    private MyData _myData;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    {   
        // Inflate the layout for this fragment 
        return inflater.inflate(R.layout.custom_fragment, container, false);

        MyActivity activity = (MyActivity) getActivity(); // Unreachable code error here
        _myData = activity.getMyData();
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要能够访问MyData片段中对象的内容.但是,当我尝试上面的代码时,我得到一个"无法访问的代码"错误,即使getMyData()是类中的公共方法MyActivity.

android fragment android-activity

0
推荐指数
1
解决办法
179
查看次数