小编A-S*_*ani的帖子

ViewPager PagerAdapter未更新视图

我正在使用兼容性库中的ViewPager.我已经巧妙地让它显示了几个我可以翻阅的视图.

但是,我很难弄清楚如何使用一组新视图更新ViewPager.

我已经试过各种事情就像调用mAdapter.notifyDataSetChanged(),mViewPager.invalidate()即使每次都创建我想用一个新的数据列表中的一个全新的适配器.

没有任何帮助,文本视图与原始数据保持不变.

更新: 我做了一个小测试项目,我几乎能够更新视图.我将粘贴下面的课程.

然而,似乎没有更新的是第二个视图,"B"仍然存在,按下更新按钮后应显示"Y".

public class ViewPagerBugActivity extends Activity {

    private ViewPager myViewPager;
    private List<String> data;

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

        data = new ArrayList<String>();
        data.add("A");
        data.add("B");
        data.add("C");

        myViewPager = (ViewPager) findViewById(R.id.my_view_pager);
        myViewPager.setAdapter(new MyViewPagerAdapter(this, data));

        Button updateButton = (Button) findViewById(R.id.update_button);
        updateButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                updateViewPager();
            }
        });
    }

    private void updateViewPager() {
        data.clear();
        data.add("X");
        data.add("Y");
        data.add("Z");
        myViewPager.getAdapter().notifyDataSetChanged();
    }

    private class MyViewPagerAdapter extends PagerAdapter {

        private …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager

581
推荐指数
14
解决办法
35万
查看次数

将线性布局中的按钮居中

我使用线性布局来显示非常轻的初始屏幕.它有一个按钮,应该在屏幕中水平和垂直居中.但无论我尝试做什么,按钮都会在顶部对齐中心.我已经包含了下面的XML,有人能指出我正确的方向吗?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ImageButton android:id="@+id/btnFindMe" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical|center_horizontal"
        android:background="@drawable/findme"></ImageButton>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

xml layout android

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

仍然收到警告:配置'编译'已经过时,已被'实施'取代

我已经更换的每次出现compileimplementation在我的项目build.gradle,但我仍然得到这样的警告:

在此输入图像描述

我试图在整个项目中寻找"编译"但没有找到匹配.那可能是什么原因?

android build gradle

324
推荐指数
10
解决办法
19万
查看次数

启用IIS7 gzip

如何启用IIS7来gzip静态文件,如js和css,如何在发送到客户端之前测试IIS7是否真正gziping它们?

compression iis iis-7 gzip

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

使用Express 4.0上传文件:req.files undefined

我试图得到一个简单的文件上传机制快车4.0工作,但我不断收到undefinedreq.filesapp.post体内.这是相关代码:

var bodyParser = require('body-parser');
var methodOverride = require('method-override');
//...
app.use(bodyParser({ uploadDir: path.join(__dirname, 'files'), keepExtensions: true })); 
app.use(methodOverride()); 
//...
app.post('/fileupload', function (req, res) {
  console.log(req.files); 
  res.send('ok'); 
}); 
Run Code Online (Sandbox Code Playgroud)

..以及随附的Pug代码:

form(name="uploader", action="/fileupload", method="post", enctype="multipart/form-data")
    input(type="file", name="file", id="file")
    input(type="submit", value="Upload")
Run Code Online (Sandbox Code Playgroud)

解决方案
由于下面的mscdex响应,我已切换到使用busboy而不是bodyParser:

var fs = require('fs');
var busboy = require('connect-busboy');
//...
app.use(busboy()); 
//...
app.post('/fileupload', function(req, res) {
    var fstream;
    req.pipe(req.busboy);
    req.busboy.on('file', function (fieldname, file, filename) {
        console.log("Uploading: " + filename); 
        fstream …
Run Code Online (Sandbox Code Playgroud)

node.js express

222
推荐指数
7
解决办法
17万
查看次数

如何创建下拉列表?

如何创建下拉列表?我尝试过ScrollView,但这并不是我需要的.

android list android-spinner drop-down-menu

189
推荐指数
8
解决办法
46万
查看次数

在Android中,如何在LinearLayout孩子之间腾出空间?

我以编程方式将自定义视图添加到垂直LinearLayout,我希望视图之间有一些空间.我尝试添加:setPadding(0,1,0,1)到我的CustomView构造函数,但这似乎没有任何影响.有什么建议?

*有人指出我应该使用保证金.由于我是动态添加视图,因此我需要从代码中设置边距(而不是在xml中).我相信这样做的方法如下,但它不起作用.

public class MyView extends View
{
    public MyView (Context context)
    {
        super(context);

        MarginLayoutParams params = new MarginLayoutParams(LayoutParams.WRAP_CONTENT,  LayoutParams.WRAP_CONTENT);
        params.setMargins(0, 10, 0, 10);
        setLayoutParams(params);
Run Code Online (Sandbox Code Playgroud)

*编辑.我还尝试使用MarginLayoutParams作为参数,同时将视图添加到线性布局(如下所示).这也行不通:

MarginLayoutParams params = new MarginLayoutParams(linearLayout.getLayoutParams());
linearLayout.setMargins(0, 10, 0, 10);
linearLayout.addView(view, params);
Run Code Online (Sandbox Code Playgroud)

谢谢.

android

145
推荐指数
7
解决办法
20万
查看次数

从CodeBehind调用JavaScript函数

有人能提供从CodeBehind调用JavaScript函数的好例子,反之亦然吗?

javascript c# asp.net

140
推荐指数
12
解决办法
66万
查看次数

使用一长串查询参数设计RESTful查询API

因此,我需要设计一个RESTful查询API,它基于一些过滤器返回一组对象.通常的HTTP方法是GET.唯一的问题是,它可以拥有至少十几个过滤器,如果我们将所有这些过滤器作为查询参数传递,则URL可能会变得很长(足够长以被某些防火墙阻止).

减少参数数量不是一种选择.

我能想到的另一种选择是在URI上使用POST方法并将过滤器作为POST主体的一部分发送.这是不是RESTfull(对查询数据进行POST调用).

有没有更好的设计建议?

谢谢

api rest http-parameters

137
推荐指数
3
解决办法
7万
查看次数

Android SDK位置

我有Xamarin Studio,我需要指定Android SDK位置.我以前曾在我的电脑上使用Xamarin Studio,出于某种原因,我需要再次输入.

我已进入以下位置:

C:\Users\**username**\AppData\Local\Android\android-sdk

Xamarin Studio不接受此位置并显示以下消息:

No SDK found at the specified location
Run Code Online (Sandbox Code Playgroud)

此位置包含平台工具和其他SDK文件夹.

为什么这不起作用,我该怎么办?

sdk android xamarin-studio

129
推荐指数
8
解决办法
43万
查看次数