相关疑难解决方法(0)

Android:将数据(附加内容)传递给片段

我是Android编程的新手,在将Parcelable的ArrayList传递给片段时遇到了问题.这是启动的Activity(运行良好!),其中feedlist是可分割音乐的ArrayList .

Intent in = new Intent(context, ListMusicsActivity.class);

in.putExtra("arrayMusic", feedList);
activity.startActivity(in);
Run Code Online (Sandbox Code Playgroud)

片段Activity onCreate()方法:

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

    if(savedInstanceState != null)
    {
        ListMusicFragment frag = new ListMusicFragment();
        frag.setArguments(getIntent().getExtras());
    }
}
Run Code Online (Sandbox Code Playgroud)

片段代码:

public class ListMusicFragment extends SherlockFragment{

private ArrayList<Music> listMusics = new ArrayList<Music>();
private ListView listMusic;


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState)
{
    listMusics = (ArrayList<Music>) getArguments().getSerializable("arrayMusic");
    View view = inflater.inflate(R.layout.musiclistview, container, false);
    listMusic = (ListView) view.findViewById(R.id.musicListView);
    listMusic.setAdapter(new MusicBaseAdapter(getActivity(), listMusics));

    return …
Run Code Online (Sandbox Code Playgroud)

java android nullpointerexception android-intent

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

使用navigateUpFromSameTask()从活动返回

我有两个活动,A和B.当活性A被第一次启动,它访问Intent传递给它(因为Bundle是null,因为它应该通过在第一时间),并相应地显示信息:

CustInfo m_custInfo;
...
protected void onCreate(Bundle savedInstanceState)
{
    ...
    Bundle bundle = (savedInstanceState == null) ? getIntent().getExtras() : savedInstanceState;
    m_custInfo = (CustInfo) m_bundle.getSerializable("CustInfo");
    if (m_custInfo != null
        ...
}
Run Code Online (Sandbox Code Playgroud)

这在第一次通过时工作正常.该EditText控制和ListView正确地填写.

现在,当单击列表中的项目时,将启动活动B以显示详细信息:

m_custInfo = m_arrCustomers.get(pos);

Intent intent = new Intent(A.this, B.class);
intent.putExtra("CustInfo", m_custInfo); // CustInfo is serializable
// printing this intent, it shows to have extras and no flags

startActivityForResult(intent, 1);
Run Code Online (Sandbox Code Playgroud)

在acivity B启动之前,框架调用A被覆盖onSaveInstanceState():

protected void onSaveInstanceState(Bundle outState)
{ …
Run Code Online (Sandbox Code Playgroud)

android android-activity android-actionbar up-button

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

创建片段:构造函数与newInstance()

我最近厌倦了在创建我的时候经常不知道String要传递参数的键.所以,我决定把我的构造函数,将采取我想设置的参数,并把这些变量到用正确的按键,因此省去了其他的需求和需要知道这些密钥.BundlesFragmentsFragmentsBundlesStringFragmentsActivities

public ImageRotatorFragment() {
    super();
    Log.v(TAG, "ImageRotatorFragment()");
}

public ImageRotatorFragment(int imageResourceId) {
    Log.v(TAG, "ImageRotatorFragment(int imageResourceId)");

    // Get arguments passed in, if any
    Bundle args = getArguments();
    if (args == null) {
        args = new Bundle();
    }
    // Add parameters to the argument bundle
    args.putInt(KEY_ARG_IMAGE_RES_ID, imageResourceId);
    setArguments(args);
}
Run Code Online (Sandbox Code Playgroud)

然后我像平常一样提出这些论点.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.v(TAG, "onCreate");

    // Set incoming parameters
    Bundle args = getArguments();
    if (args != null) {
        mImageResourceId …
Run Code Online (Sandbox Code Playgroud)

android constructor default-constructor android-fragments

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