相关疑难解决方法(0)

使用Parcelable发送StringArray时发生NullPointerException

用parcelable对象发送意图时我遇到了奇怪的问题.这个对象有一个String数组.使用此答案如何使用Intents将对象从一个Android Activity发送到另一个?我首先将我的对象创建为parcelable,然后发送它.这是我的代码片段:

    public class MyObject implements Parcelable{

    private String _title = null;
    private String[] _genre;
    private int _time = 0;
    private String _disc = null;

    private static final String TAG = "MyObject";

    public MyObject (String title, String[] genre, int time, String disc) {
        _title = title;
        _genre = genre;
        _time = time;
        _disc = disc;
    }



    public MyObject(Parcel source) {
            /*
             * Reconstruct from the Parcel
             */
            Log.v(TAG, "ParcelData(Parcel source): time to put back parcel data");
            _title = …
Run Code Online (Sandbox Code Playgroud)

java android parcelable android-intent

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

将自定义类传递给 Fragment

我有一个名为 Data 的自定义类,其中包含所有数据。主要活动创建两个片段。我在主要活动中有一个字段,如下所示:

private Data data = new Data();
Run Code Online (Sandbox Code Playgroud)

这些片段是用这个方法创建的:

private ArrayList<Fragment> getFragments() {
    ArrayList<Fragment> fragments = new ArrayList<Fragment>();
    fragments.add(new fragment_one());
    fragments.add(new fragment_two());
    return fragments;
}
Run Code Online (Sandbox Code Playgroud)

我需要将数据字段传递给片段,以便片段可以访问数据的方法。

我尝试创建一个包,但我无法传递自定义类。我能做什么?

android bundle fragment

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

如何将ArrayList放入bundle中

我已经为这样的arraylist增加了一些价值:

    private List<InfoProduct> product;

    product = new ArrayList<>();
    product.add(new InfoProduct(R.drawable.cloth, Product_title, "0", Product_data2, lunch,R.drawable.cardview_circle_corner));
    product.add(new InfoProduct(R.drawable.guitar, Product_title, "1", Product_data2, lunch,R.drawable.cardview_circle_corner));
    product.add(new InfoProduct(R.drawable.cloth, Product_title, "2", Product_data2, lunch,R.drawable.cardview_circle_corner));
    product.add(new InfoProduct(R.drawable.guitar, Product_title, "3", Product_data2, lunch,R.drawable.cardview_circle_corner));
    product.add(new InfoProduct(R.drawable.cloth, Product_title, "4", Product_data2, lunch,R.drawable.cardview_circle_corner));
    product.add(new InfoProduct(R.drawable.guitar, Product_title, "5", Product_data2, lunch,R.drawable.cardview_circle_corner));
    product.add(new InfoProduct(R.drawable.cloth, Product_title, "6", Product_data2, lunch,R.drawable.cardview_circle_corner));
    product.add(new InfoProduct(R.drawable.guitar, Product_title, "7", Product_data2, lunch,R.drawable.cardview_circle_corner));
    product.add(new InfoProduct(R.drawable.cloth, Product_title, "8", Product_data2, lunch,R.drawable.cardview_circle_corner));
    product.add(new InfoProduct(R.drawable.guitar, Product_title, "9", Product_data2, lunch,R.drawable.cardview_circle_corner));
Run Code Online (Sandbox Code Playgroud)

当我需要去其他Fragment时,我想使用Bundle来传输我的ArrayList,所以我写了一些代码来遵守这个

    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.replace(R.id.fragment_youtube, new FragmentYoutubeProduct(), "youtube");
    ft.addToBackStack("youtube");
    Bundle bundle …
Run Code Online (Sandbox Code Playgroud)

java android arraylist

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

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

从一个活动传递图像另一个活动

SO上也有类似的问题,但没有一个对我有用.

我想在Activity1中获取单击的图像并在Activity2中显示它.
我正在获取点击图像的图像ID,如下所示:

((ImageView) v).getId()
Run Code Online (Sandbox Code Playgroud)

并通过意图将其传递给另一个活动.

在第二个活动中,我使用图像ID如下:

imageView.setImageResource(imgId);
Run Code Online (Sandbox Code Playgroud)

我在两个活动中记录了值og image id并且它是相同的.

但我得到以下异常:

android.content.res.Resources$NotFoundException: Resource is not a Drawable 
(color or path): TypedValue{t=0x12/d=0x0 a=2 r=0x7f050000}
Run Code Online (Sandbox Code Playgroud)

我想这里的问题getId()是返回Id ImageView不是它的源图像.
所有这些图像都存在于drawable.

任何帮助赞赏.

android android-imageview android-resources

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

Android:将一个活动的额外活动传递给另一个活动

我有一个JSON文件,填充到一个活动(Main.java).

此活动显示来自我的JSON条目上的URL的3个随机图像.

我想做的是:我在我的JSON上有13个不同的条目,每当我点击显示的随机图片时,它转到另一个包含图片,标题和描述的活动(ProjectDetail.java)取决于我点击的项目进入JSON.

我有什么是通过使用额外的我不知道如何执行,因为我使用JSON.我应该top_listener在我的Main类的方法中添加什么以及我应该在ProjectDetail类中添加什么?

谢谢.

Main.java

   public class Main extends Activity {
            /** Called when the activity is first created. */

            ArrayList<Project> prjcts=null;
            private ImageThreadLoader imageLoader = new ImageThreadLoader();
            private final static String TAG = "MediaItemAdapter";


            @Override
            public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);

                prjcts = new ArrayList<Project>();
                WebService webService = new WebService("http://liebenwald.spendino.net/admanager/dev/android/projects.json");
                Map<String, String> params = new HashMap<String, String>();
                params.put("var", "");
                String response = webService.webGet("", params);

                try
                {
                    Type collectionType = new TypeToken<ArrayList<Project>>(){}.getType();
                    List<Project> lst= new Gson().fromJson(response, …
Run Code Online (Sandbox Code Playgroud)

android

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

从onActivityResult intent中检索putExtra值

在使用StartActivityForResult之前,我试图将某些数据附加到intent上.

当intent在OnActivityForResult中返回时,我想访问我在intent中附加的数据.因此,我可以将意图中检索到的数据与数据库条目,容器ID等相关联.

不幸的是,返回的意图似乎与我开始的意图不同.我尝试在测试用例中比较(==)旧的和新的意图,结果失败,并且毫不奇怪,我尝试追加的数据不存在.是否有任何关于原始意图的链接?

我尝试过的基本想法:

伪造代码中的StartActivityForResult代码:

Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
i.putExtra([-Key-], [int]);
i.putExtra([-Key-], [int]);
....
getParentFragment().startActivityForResult(i, requestCode); 
Run Code Online (Sandbox Code Playgroud)

OnActivityResult的伪代码

@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {

....        

    switch(requestcode){

    case RESULT_LOAD_IMAGE :

    //These always evaluate to default.  The intent returns with the picture,
    //and I process it fine (with default values), but any extra data i try to append 
    //to the intent is lost.  

    int rowId = intent.getIntExtra([-Key-], [-def_value-]);

            ....
            ....

    break;
    default:
        throw new RuntimeException();
    }
}
Run Code Online (Sandbox Code Playgroud)

android android-intent android-activity

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

为什么我得到这个错误 java.util.ArrayList cannot be cast to android.os.Parcelable

我在此代码上遇到错误

    listObjects = (Listitem) extras.getParcelable(OBJECT_LIST);
Run Code Online (Sandbox Code Playgroud)

这就是我传递意图的方式

 Intent intent = new Intent(mcontext,SingleObjectActivity.class);

                intent.putParcelableArrayListExtra("Object_list", personArrayList);

               // intent.putExtra("Object_list", personArrayList);
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                mcontext.startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

这是第二个活动

public class SingleObjectActivity extends Activity
{
    public static final String OBJECT_LIST = "Object_list";
    private ArrayList<Listitem> Objects;
    public ImageView imgview;
    private Listitem listObjects;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.singleobject);

       // ArrayList<Listitem> items = getIntent().getParcelableArrayListExtra("Object_list");
        Bundle extras = getIntent().getExtras();

        imgview = (ImageView) findViewById(R.id.funnyimage);

    /*    if (extras != null) {
            Objects = extras.getParcelableArrayList(OBJECT_LIST);
        } else {
            Objects = new ArrayList<Listitem>();
        }
*/ …
Run Code Online (Sandbox Code Playgroud)

android

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

将自定义对象数组传递给android中的另一个活动

我是 android 编程的新手,我正在尝试将一组自定义对象发送到不同的活动。在第一个活动中,我有一个创建意图并向其添加对象数组的函数:

public void openSchedule() {
    Intent nextScreen = new Intent(getApplicationContext(), Schedule.class);
    nextScreen.putExtra("array", tasks);
    startActivity(nextScreen);
}
Run Code Online (Sandbox Code Playgroud)

但是,我不确定如何在下一个屏幕上获取该数据。

即使“任务”是一个自定义对象数组,有没有办法在下一个活动的代码中获取该数组?

java arrays android

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