Android 如何将变量从活动传递到片段
我无法在OneFragment的文本视图中显示字符串描述的值。 我是新的Android编程,任何帮助将不胜感激` 这里是主要活动Android 如何将变量从活动传递到片段,android,android-fragments,android-intent,Android,Android Fragments,Android Intent,我无法在OneFragment的文本视图中显示字符串描述的值。 我是新的Android编程,任何帮助将不胜感激` 这里是主要活动 package com.example.dell.myop; import android.content.Intent; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.o
package com.example.dell.myop;
import android.content.Intent;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import com.example.dell.myop.R;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.widget.TextView;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.dell.myop.fragments.OneFragment;
import com.example.dell.myop.fragments.ThreeFragment;
import com.example.dell.myop.fragments.TwoFragment;
public class MainActivity extends AppCompatActivity {
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
String description;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DownloadTask task = new DownloadTask();
task.execute("http://api.openweathermap.org/data/2.5/weather?q=hamirpur,india&appid=41352ca35dd1be72cc7d9f47351d1b41");
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new OneFragment(), "Today");
adapter.addFragment(new TwoFragment(), "Tomorrow");
adapter.addFragment(new ThreeFragment(), "Day After");
viewPager.setAdapter(adapter);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
}
将函数setDescription(字符串文本)添加到片段中。在活动中,您获得片段,然后调用该函数。函数应该设置textview。您可以在片段中添加函数setDescription(字符串文本)。在活动中,您获得片段,然后调用该函数。函数应该设置textview。要将值从异步任务传递回启动它的活动,可以将活动对象注入任务,然后调用活动对象的方法传递回结果 在您的情况下,您可以重写DownloadTask构造函数以将活动作为参数。然后,当任务完成时,您可以调用一个方法,例如
activity.setDescription(description)
,为活动提供值。然后,该活动将更改片段的UI
我也是Android新手,所以如果有更好的方法,请原谅。要将值从异步任务传递回启动它的活动,可以将活动对象注入任务,然后调用活动对象的方法传递回结果 在您的情况下,您可以重写DownloadTask构造函数以将活动作为参数。然后,当任务完成时,您可以调用一个方法,例如
activity.setDescription(description)
,为活动提供值。然后,该活动将更改片段的UI
我也是Android新手,所以如果有更好的方法,请原谅我。使用类似的方式,从活动中发送
EditOption editOption = new EditOption();-- your fragment
Bundle args = new Bundle();
args.putInt("id", z);
args.putString("title",title);
args.putString("desc",des);
editOption.setArguments(args);
零碎
String title = getArguments().getString("title");
String des = getArguments().getString("desc");
z= getArguments().getInt("id");
根据您的案例编辑代码
希望此帮助使用类似的方式从活动中发送
EditOption editOption = new EditOption();-- your fragment
Bundle args = new Bundle();
args.putInt("id", z);
args.putString("title",title);
args.putString("desc",des);
editOption.setArguments(args);
零碎
String title = getArguments().getString("title");
String des = getArguments().getString("desc");
z= getArguments().getInt("id");
根据您的案例编辑代码
希望此帮助片段具有用于此目的的setArguments()方法。片段具有用于此目的的setArguments()方法。异步任务完成后如何发送数据?异步任务完成后如何发送数据?