小编Aus*_*ner的帖子

BaseAdapter导致ListView在滚动时出现故障

我遇到了一些我从一本书改编的BaseAdapter代码的问题.我一直在我的应用程序中使用此代码的变体,但只是在滚动一个长列表时才实现ListView中的项目变得混乱而不是所有元素都显示出来.

描述确切的行为非常困难,但很容易看出你是否采用了50个项目的排序列表并开始上下滚动.

class ContactAdapter extends BaseAdapter {

    ArrayList<Contact> mContacts;

    public ContactAdapter(ArrayList<Contact> contacts) {
        mContacts = contacts;
    }

    @Override
    public int getCount() {
        return mContacts.size();
    }

    @Override
    public Object getItem(int position) {
        return mContacts.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view;
        if(convertView == null){
            LayoutInflater li = getLayoutInflater();
            view = li.inflate(R.layout.groups_item, null);
            TextView label = (TextView)view.findViewById(R.id.groups_item_title);
            label.setText(mContacts.get(position).getName());
            label = (TextView)view.findViewById(R.id.groups_item_subtitle);
            label.setText(mContacts.get(position).getNumber());
        }
        else
        {
            view = …
Run Code Online (Sandbox Code Playgroud)

android listview

9
推荐指数
2
解决办法
7693
查看次数

使用glibc在没有root的非标准位置构建GCC

我有一个我没有root访问权限的系统,但我需要安装当前版本的GCC(4.7.2).

系统正在运行Linux 2.6.18的x86_64版本,并且已经有GCC 4.1(即使--version表示它是用它构建的,也没有C++支持).

编辑5:此时,以下步骤只是我尝试过的一组事情.从那时起我已经开始清洁了几次.我正在寻找有人详细说明我需要使用所有开关所需的确切顺序.

这是我到目前为止所经历的过程(ROOT是我主目录中的文件夹)

    make-3.82>./configure --prefix=$ROOT && make && make install && hash -r
binutils-2.23>./configure --prefix=$ROOT && make && make install
autoconf-2.69>./configure --prefix=$ROOT && make && make install
automake-1.9>./configure --prefix=$ROOT && make && make install
flex-2.5.37>./configure --prefix=$ROOT && make && make install
libunwind-1.1>./configure --prefix=$ROOT && make && make install
gcc-4.7.2-scratch>../gcc-4.7.2/configure --prefix=$ROOT \
    --disable-multilib --disable-nls --enable-languages=c,c++ \
    && make && make install && hash -r
ncurses-5.9>./configure --prefix=$ROOT && make && make install
texinfo-4.13>./configure --prefix=$ROOT && make && make install …
Run Code Online (Sandbox Code Playgroud)

linux gcc glibc

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

如何从函数返回&Path?

我试图理解如何编写正确的Rust代码,但我想我可能高估了编译器理解对象生命周期的能力.这是我期望它工作的代码:

use std::path::Path;
use std::env;
use rusqlite::SqliteConnection;

struct SomeDatabase {
    conn: SqliteConnection,
}

impl SomeDatabase {
    fn getPath() -> &Path {
        let path = env::home_dir().unwrap();
        path.push("foo.sqlite3");
        path.as_path()
    }

    fn open() -> SomeDatabase {
        let path = SomeDatabase::getPath()
        SomeDatabase { conn: SqliteConnection::open(path).unwrap() }
    }
}

fn main() {
    let db = SomeDatabase::open();
}
Run Code Online (Sandbox Code Playgroud)

当我尝试编译它时,我得到一个关于缺少生命周期说明符的错误&Path.我知道如果这从调用者那里获取了一个引用参数,它将与该引用具有相同的生命周期.虽然我期待的是生命周期将附加到我将结果赋给的变量.

我知道生命周期可以明确添加,但在这种情况下我不知道如何应用它们.编译器建议尝试'static生命周期,但据我所知,这没有意义,因为此函数的返回值的来源不是静态的.

现在,只是为了尝试看看会发生什么,如果我试图编译代码的其余部分,我从改变返回类型&PathPathBuf,并呼吁as_path()open().这导致编译器输出这些错误:

src\main.rs:22:30: 22:52 error: the trait `core::marker::Sized` is not implemented for the type `[u8]` …
Run Code Online (Sandbox Code Playgroud)

rust

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

获取重载静态函数的地址

可能重复:
如何指定指向重载函数的指针?

我有一个库,其类定义为:

struct ClassA
{
    static ClassA foo(long);
    static ClassA foo(double);
}
Run Code Online (Sandbox Code Playgroud)

我需要获取这两个函数的地址.我正在尝试的代码给出错误C2440:无法从'overloaded-function'转换为'...'

ns::ClassA (ns::ClassA::*ClassA_foo1)(long) = &ns::ClassA::foo;
ns::ClassA (ns::ClassA::*ClassA_foo2)(double) = &ns::ClassA::foo;
Run Code Online (Sandbox Code Playgroud)

我认为它们可能是静态的,但在返回类型之前或之后放置静态会产生相同的错误.

c++

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

具有多个启动器图标的Android应用程序套件无论选择哪个,都会恢复到相同的活动

我有一个Android应用程序,包含一套应用程序.我希望每个应用程序都使用自己的启动器图标进行安装,因此我有一些具有相同intent过滤器的活动.

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

如果我使用后退按钮关闭应用程序,它可以正常工作.每个启动器图标都会启动不同的活动.但是,如果我只是使用主页按钮将应用程序发送到后台,然后尝试启动另一个活动,那么我放入后台的活动将被带到前台而不是正确的活动开始.

我可以使多个图标工作,还是需要创建一个中心活动作为启动所有子应用程序的方法?

android

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

使用System.Net.Http.HttpClient进行并行HTTP请求

我正试图找出使用Task和并行化HTTP请求的正确方法async/await.我正在使用HttpClient已经具有异步方法来检索数据的类.如果我只是在foreach循环中调用它并等待响应,则一次只发送一个请求(这是有道理的,因为在await控制期间,控制返回到我们的事件循环,而不是foreach循环的下一次迭代).

我的包装HttpClient看起来像这样

public sealed class RestClient
{
    private readonly HttpClient client;

    public RestClient(string baseUrl)
    {
        var baseUri = new Uri(baseUrl);

        client = new HttpClient
        {
            BaseAddress = baseUri
        };
    }

    public async Task<Stream> GetResponseStreamAsync(string uri)
    {
        var resp = await GetResponseAsync(uri);
        return await resp.Content.ReadAsStreamAsync();
    }

    public async Task<HttpResponseMessage> GetResponseAsync(string uri)
    {
        var resp = await client.GetAsync(uri);
        if (!resp.IsSuccessStatusCode)
        {
            // ...
        }

        return resp;
    }

    public async Task<T> GetResponseObjectAsync<T>(string uri) …
Run Code Online (Sandbox Code Playgroud)

.net c# task-parallel-library async-await

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

我应该如何构建我的项目以在Android客户端应用程序和JSP服务器应用程序之间共享类?

我正在构建一个需要访问Web服务的Android应用程序(作为Eclipse项目).我们将从服务中将数据作为JSON序列化类发送,因此我们希望在Android应用程序和服务器应用程序之间共享一些类.我们目前认为我们需要这样做的方式是使用3个文件夹构建我们的Git存储库.一个用于客户端,一个用于服务器,一个用于共享库.

但在那时我们无法弄清楚如何创建共享代码.看起来我们可以将所有.java文件放入一个文件夹中,然后从其他项目创建一个指向该文件夹的相对链接,但这是一个很好的方法吗?

我们发现的另一种可能性是在Eclipse中创建另一个项目,然后在客户端项目中包含库项目.但是我们遇到了一个问题.我们如何使服务器和Android都可以使用该库?如果我在Eclipse中创建一个新的Java项目,我必须选择一个JRE来构建,但是Dalvik不是一个选项,即使它是如何使用桌面VM的库,如果库是为Dalvik编译的?

java version-control android

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

Rails从ActiveRecord对象生成不正确的SQL

我有一个简单的ActiveRecord对象,表示估计的到达时间.

class Eta < ActiveRecord::Base
    belongs_to :stop
    belongs_to :vehicle
    validates :timestamp, :presence => true
end
Run Code Online (Sandbox Code Playgroud)

在我的数据库,我创建了相应的栏目stop_id,vehicle_idtimestamp (of type datetime).

我有一个rake任务设置来执行此表上的操作,但它生成的SQL没有意义.如果我尝试运行:

for eta in Eta.all
    puts eta.timestamp
end
Run Code Online (Sandbox Code Playgroud)

它尝试SELECT * FROM eta,但表是命名etas,而不是eta.

复数数据库命名与从ActiveRecord对象创建的其余表一致,我成功创建了一个正常工作的类似ActiveRecord对象.

class PrecedingCoord < ActiveRecord::Base
    belongs_to :stop
    belongs_to :route
    belongs_to :coord
end
Run Code Online (Sandbox Code Playgroud)

在rake文件中:

for eta in PrecedingCoord.all
    puts eta.coord.latitude
end
Run Code Online (Sandbox Code Playgroud)

ruby activerecord ruby-on-rails ruby-on-rails-3

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