GVKun编程网logo

Extjs Gridview显示无数据(gridview不显示数据)

3

在这里,我们将给大家分享关于ExtjsGridview显示无数据的知识,让您更了解gridview不显示数据的本质,同时也会涉及到如何更有效地AndroidGlide点击项目Gridview显示图像全

在这里,我们将给大家分享关于Extjs Gridview显示无数据的知识,让您更了解gridview不显示数据的本质,同时也会涉及到如何更有效地Android Glide点击项目Gridview显示图像全屏、Android ScrollView嵌套GridView导致GridView只显示一行item、android – GridView中的Facebook原生广告:MediaView显示灰色矩形、Android中ScrollView嵌套GridView显示不全解决方法的内容。

本文目录一览:

Extjs Gridview显示无数据(gridview不显示数据)

Extjs Gridview显示无数据(gridview不显示数据)

我正在尝试使用json在extjs中创建一个gridview。由于某种原因,我的gridview不显示任何数据。我试图用Firebug调试它。我可以在“响应”部分中看到结果。这就是我在“响应”中的内容。

{“ ContentEncoding”:null,“ ContentType”:null,“ Data”:“ {\ r \ n \” myTable
\“:[\ r \ n {\ r \ n \” Q1 \“:\” 1 \“ ,\ r \ n \“ Q2 \”:\“ 1 \”,\ r \ n \“
Q3 \”:\“ 1 \”,\ r \ n \“ Q4 \”:\“ 1 \”,\ r \ n \“改进\”:\“ \”,\ r \ n
\“评论\”:\“ 1 \” \ r \ n},\ r \ n {\ r \ n \“ Q1 \”: \“ 1 \”,\ r \ n \“ Q2
\”:\“ 2 \”,\ r \ n \“ Q3 \”:\“ 3 \”,\ r \ n \“ Q4 \”:\“ 4 \“,\ r \ n
\”改进\“:\” Iphone5 \“,\ r \ n \”评论\“:\” Iphone14 \“ \ r \ n},\ r \ n {\ r \ n
\“ Q1 \”:\“ 1 \”,\ r \ n \“ Q2 \”:\“ 1 \”,\ r \ n \“ Q3 \”:\“3 \“,\ r \ n \”
Q4 \“:\” 3 \“,\ r \ n \”改进\“:\”这是Comment1-3 \“,\ r \ n \” Comments \“:
\“这是Comment2-3 \” \ r \ n} \ r \ n] \ r \ n}“,” JsonRequestBehavior“:0}

更新 实际上我现在在Json中看到了这个,但是我的gridview仍然是空的。
请单击此处查看我的JSON。

/GridViewApp.js

Ext.define(''GridViewApp.view.GridViewApp'', {alias: ''widget.gridviewapp'',width: 800,title: ''My Grid Panel'',grid: null,store: null,layout: {    type: ''anchor''},constructor: function () {    this.callParent(arguments);    var store = Ext.create(''Ext.data.Store'', {        storeId: ''myData'',        scope: this,        fields: [        { name: ''Q1'', type: ''int'' },        { name: ''Q2'', type: ''int'' },        { name: ''Q3'', type: ''int'' },        { name: ''Q4'', type: ''int'' },        { name: ''Q5'', type: ''int'' },        { name: ''Improvements'', type: ''string'' },        { name: ''Comments'', type: ''string'' }        ],        sorters: [            {                //property: ''myData'',                direct: ''ASC''            }         ],        proxy: {            type: ''ajax'',            scope: this,            url: ''GridView/writeRecord'',            reader: {                type: ''json'',                root: ''myTable'',                idProperty: ''ID''                }        }     });    store.load();       this.grid = Ext.create(''Ext.grid.Panel'', {        title: ''GridView App'',        store: this.store,        columns: [            {header: ''Q1'', width: 100,        sortable: true, dataIndex: ''Q1''                    },        { header: ''Q2'', width: 100,            sortable: true, dataIndex: ''Q2''        },        { header: ''Q3'', width: 100,            sortable: true, dataIndex: ''Q3''        },                    { header: ''Q4'', width: 100,                        sortable: true, dataIndex: ''Q4''                    },                    { header: ''Improvements'', width: 200,                        sortable: true, dataIndex: ''Improvements''                    },                    { header: ''Comments'', width: 200,                        sortable: true, dataIndex: ''Comments''                    }    ],        stripeRows: true,        width: 800,        renderTo: Ext.getBody()    });    this.add(this.grid);}});

和/GridViewController.cs

namespace GridViewApp.Controllers{public class GridViewController : Controller{    public ActionResult Index()    {        return View();    }    public JsonResult writeRecord()    {        SqlConnection conn = DBTools.GetDBConnection("ApplicationServices2");        string sqlquery = "SELECT Q1, Q2, Q3, Q4, Improvements, Comments FROM myTable";        SqlDataAdapter cmd = new SqlDataAdapter(sqlquery, conn);        DataSet myData = new DataSet();        cmd.Fill(myData, "myTable");        conn.Open();        conn.Close();        string myData1 = JsonConvert.SerializeObject(myData, Formatting.Indented,                        new JsonSerializerSettings                        {                            ReferenceLoopHandling = ReferenceLoopHandling.Ignore                        });        return Json(new { data = myData1 }, JsonRequestBehavior.AllowGet);    }}}

任何形式的输入都会有很大的帮助…谢谢

答案1

小编典典

返回一个字符串是很合理的逻辑。

您将json.net序列化为一个字符串。然后,使用Json()序列化该字符串。您应该只使用json.net序列化。

public string writeRecord(){    SqlConnection conn = DBTools.GetDBConnection("ApplicationServices2");    string sqlquery = "SELECT Q1, Q2, Q3, Q4, Improvements, Comments FROM myTable";    SqlDataAdapter cmd = new SqlDataAdapter(sqlquery, conn);    DataSet myData = new DataSet();    cmd.Fill(myData, "myTable");    conn.Open();    conn.Close();    return myData1 = JsonConvert.SerializeObject(myData, Formatting.Indented,                    new JsonSerializerSettings                    {                        ReferenceLoopHandling = ReferenceLoopHandling.Ignore                    });}

Android Glide点击项目Gridview显示图像全屏

Android Glide点击项目Gridview显示图像全屏

我正在使用Glide在gridview中下载和显示图像.当我点击gridview中的某个项目时,我想在另一个活动中显示此图像,以全屏显示此图像.但是使用Glide我不知道如何将图像保存在缓存中.

>将图像文件名保存在数据库中并再次调用链接以使用Glide下载完整大小的图像?
>或者尝试将图像放入缓存中,但我不知道该怎么做.

你可以帮帮我吗 ?

解决方法

尝试这段代码,它对我有用:

在您的适配器上:

Glide.with(context)
                .load("photo_url")
                .diskCacheStrategy(diskCacheStrategy.ALL) //use this to cache
                .centerCrop()
                .crossFade()
                .into(yourImageView);

在你的另一个活动:

Glide.with(AnotherActivity.this)
            .load("photo_url")
            .diskCacheStrategy(diskCacheStrategy.ALL) //use this to cache
            .crossFade()
            .into(yourImageView);

使用.diskCacheStrategy(diskCacheStrategy.ALL)来缓存&不要忘记使图像缩放相同.它会工作.

Android ScrollView嵌套GridView导致GridView只显示一行item

Android ScrollView嵌套GridView导致GridView只显示一行item

Android ScrollView嵌套GridView导致GridView只显示一行item

Android ScrollView在嵌套GridView时候,会导致一个问题发生:GridView只显示一行。比如,在一个大的根ScrollView里面套一个根、大的垂直线性布局,此线性布局里面有若干子View,GridView只是其中之一,那么当这个大xml写成的布局在初始化加载后,GridView只显示一行,这种情况是因为在Android的体系设计中,由于ScrollView和GridView本身都是滚动View导致互相冲突引起。
在上述开发情景中,如果打算完全展开GridView,其中一个解决方案就是继承GridView加以改造重写GridView,然后使用这个重写的这个GridView:

package zhangphil.sample.view;

import android.content.Context;
import android.util.AttributeSet;
import android.view.ViewGroup;
import android.widget.GridView;

/**
 * Created by Phil on 2016/8/18.
 */
public class ExpandableGridView extends GridView {

    boolean expanded = true;

    public boolean isExpanded() {
        return expanded;
    }

    public ExpandableGridView(Context context) {
        super(context);
    }

    public ExpandableGridView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public ExpandableGridView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        if (isExpanded()) {
            int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
            super.onMeasure(widthMeasureSpec, expandSpec);
            ViewGroup.LayoutParams params = getLayoutParams();
            params.height = getMeasuredHeight();
        } else {
            super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        }
    }

    public void setExpanded(boolean expanded) {
        this.expanded = expanded;
    }
}



在这个重写改造后的GridView里面增加了判断是否完全伸展开的状态值,可以set是否完全伸展。
如果expanded为true,那么初始化加载后就完全展开这个GridView的所有子item;
如果expanded为false,那么就退化成Android原生的GridView只显示一行。
根据自己项目的实际开发场景设置expanded的初始值为true或false,通常在开发中是希望GrdiView完全展开的,那就直接用我写好的代码就可以了。
不仅ScrollView在嵌套GridView时候会引起GridView不能展开只显示一行,实际上当ListView与GridView嵌套时候,也会引起这个问题,解决方案之一还是用我的这个重写后的GridView而非Android系统原生的GridView。


附录:
1,《Android GridView子元素item按击交互设计:背景颜色改变》链接:http://blog.csdn.net/zhangphil/article/details/46048583

android – GridView中的Facebook原生广告:MediaView显示灰色矩形

android – GridView中的Facebook原生广告:MediaView显示灰色矩形

我将Facebook原生广告整合到GridView中.目前,我展示了测试广告.除播放视频的播放器外,它的工作正常.

如果用户不与GridView交互,MediaView播放视频就好了.
滚动GridView时,当广告重新出现在屏幕上时,视频会暂停并恢复.

向上和向下滚动网格几次后,MediaView不再显示视频,只显示一个灰色矩形.

出于好奇,当MediaView为灰色时,我试图在我的设备上运行Ui Automatic Viewer.我注意到一些有趣但我无法理解的东西.

在View层次结构中,我可以看到带有一些子FrameLayout的GridView(适配器给出的Views的容器).这包括原生广告和其他观看次数.

但是当MediaView为灰色时,其FrameLayout不会出现在View层次结构中!但它在屏幕上呈现得很好!

我对所见所闻感到非常困惑.

此外,当我将这些广告集成到RecyclerView中时,我没有遇到这个问题(或者至少没有注意到它).

我们来谈谈代码吧.我有一个引用指向Facebook原生广告视图.

建议欢迎:)

以下是为GridView提供视图的适配器的代码:

public class AdapterGridgallery extends BaseAdapter implements AdListener {

    private static int POSITION_AD = 4;
    private Listgallery;

    View facebookAdView;
    private NativeAd facebookNativeAd;
    private boolean nativeAdSet = false;

    public AdapterGridgallery(Fragmentgallery fragment,int height) {
        heightViews = height;
        fragmentgallery = fragment;
        facebookNativeAd = new NativeAd(fragment.getContext(),"my_tag");
        facebookNativeAd.setAdListener(this);
        facebookNativeAd.loadAd();
    }

    public void updateData(Listarams = (AbsListView.LayoutParams) facebookAdView.getLayoutParams();
                    params.height = heightViews;
                    params.width = AbsListView.LayoutParams.MATCH_PARENT;
                    facebookAdView.setLayoutParams(params);
                }

                viewQuizz = facebookAdView;
                viewQuizz.setTag(0);

                if (facebookNativeAd.isAdLoaded()) {
                    if (!nativeAdSet) {
                        Log.d("NativeAdList","update views resources");
                        nativeAdSet = true;

                        ImageView nativeAdIcon = (ImageView) facebookAdView.findViewById(R.id.native_ad_icon);
                        TextView nativeAdTitle = (TextView) facebookAdView.findViewById(R.id.native_ad_title);
                        TextView nativeAdBody = (TextView) facebookAdView.findViewById(R.id.native_ad_body);
                        MediaView nativeAdMedia = (MediaView) facebookAdView.findViewById(R.id.native_ad_media);
                        TextView nativeAdSocialContext = (TextView) facebookAdView.findViewById(R.id.native_ad_social_context);
                        Button nativeAdCallToAction = (Button) facebookAdView.findViewById(R.id.native_ad_call_to_action);


                        nativeAdSocialContext.setText(facebookNativeAd.getAdSocialContext());
                        nativeAdCallToAction.setText(facebookNativeAd.getAdCallToAction());
                        nativeAdTitle.setText(facebookNativeAd.getAdTitle());
                        nativeAdBody.setText(facebookNativeAd.getAdBody());
                        // Downloading and setting the ad icon.
                        NativeAd.Image adIcon = facebookNativeAd.getAdIcon();
                        NativeAd.downloadAnddisplayImage(adIcon,nativeAdIcon);
                        // Download and setting the cover image.
                        nativeAdMedia.setNativeAd(facebookNativeAd);
                        nativeAdMedia.setAutoplay(true);
                        facebookNativeAd.registerViewForInteraction(facebookAdView);
                        nativeAdCallToAction.setVisibility(View.VISIBLE);
                    } else {
                        Log.d("NativeAdList","views resources already set");
                    }
                } else {
                    Log.d("NativeAdList","nativeAdCallToAction is set invisible");
                    nativeAdCallToAction.setVisibility(View.INVISIBLE);
                }
                break;
            case 1:
                view = new CustomView();
            }
            return view;
    }

    @Override
    public void onError(Ad ad,AdError adError) {
    }

    @Override
    public void onAdLoaded(Ad ad) {
        notifyDataSetChanged();
    }

    @Override
    public void onAdClicked(Ad ad) {

    }
}

这是Ui Automator Viewer的截图.

enter image description here

最佳答案
如你所说

when I integrated these ads in a RecyclerView,I didn’t have this
problem (or at least didn’t notice it).

我认为回收站视图对您来说非常合适.然后,不要尝试在gridview中重做同样的事情,只需使用LayoutManager将Recycler视图转换为grid or list.

Android中ScrollView嵌套GridView显示不全解决方法

Android中ScrollView嵌套GridView显示不全解决方法

Android中ScrollView嵌套GridView显示不全解决方法

由于ScrollView和GridView这两款控件都自带滚动条,一起使用GridView会显示不全

解决方法:自定义gridview

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

今天关于Extjs Gridview显示无数据gridview不显示数据的分享就到这里,希望大家有所收获,若想了解更多关于Android Glide点击项目Gridview显示图像全屏、Android ScrollView嵌套GridView导致GridView只显示一行item、android – GridView中的Facebook原生广告:MediaView显示灰色矩形、Android中ScrollView嵌套GridView显示不全解决方法等相关知识,可以在本站进行查询。

本文标签: