小编Nar*_*gis的帖子

如何在FragmentStatePagerAdapter中销毁旧片段

我想实现这个: 在此输入图像描述
我使用带有FragmentStatePagerAdapter的ViewPager.
我从这个页面的示例开始:http:
//developer.android.com/reference/android/support/v4/app/FragmentStatePagerAdapter.html

这是我的ViewPager适配器:

    public static class MyAdapter extends FragmentStatePagerAdapter {
        public MyAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public int getCount() {
            return NUM_ITEMS;
        }

        @Override
        public Fragment getItem(int position) {
            return ArrayListFragment.newInstance(position);
        }

        @Override
        public void destroyItem(ViewGroup container, int position, Object object) {
            super.destroyItem(container, position, object);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我的ViewPager的每个页面都包含一个带有一些数据的ListView.在我切换到ViewPager中的新页面时,它将非常快速地增加RAM内存.
我该如何删除旧碎片?
我也用过这个,但它什么也没做:

public void destroyItem(ViewGroup container, int position, Object object) {

    FragmentManager manager = ((Fragment) object).getFragmentManager();
    FragmentTransaction trans = manager.beginTransaction();
    trans.remove((Fragment) object);
    trans.commit();

    super.destroyItem(container, position, object);
} …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager

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

如何在relativelayout中以编程方式设置重力

如何在relativelayout中以编程方式设置重力.我有一个名为chat_viewer_message.xml的XML布局,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/background"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingRight="4dip"
    android:paddingBottom="4dip"
    android:gravity="left"
    android:background="@drawable/chat_bg_in">

    <ImageView
        android:id="@+id/avatar"
        android:layout_width="32dip"
        android:layout_height="32dip"
        android:layout_marginLeft="4dip"
        android:src="@drawable/avatar_1_1"
        />

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/avatar"
        android:paddingLeft="4dip"
        />

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

编程中的代码视图如下:

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        final int type = getItemViewType(position);
        final View view;
        if (convertView == null) {
            final int resource = R.layout.chat_viewer_message;
            view = activity.getLayoutInflater()
                    .inflate(resource, parent, false);
            if (type == TYPE_MESSAGE)
                ((TextView) view.findViewById(R.id.text)).setTextAppearance(
                        activity, appearanceStyle);
        } else
            view = convertView;



        final MessageItem …
Run Code Online (Sandbox Code Playgroud)

android

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

是否有工具来删除不需要的,未使用的变量

有没有任何工具可以从android项目中删除不需要的变量.我尝试过PMD(这是一个很好的工具),但我想要一个更通用的未使用的变量移除器.

performance android

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

如何在Android中单击按钮时播放声音?

我正在尝试在单击按钮时播放声音文件,但不断出现错误.

错误是:

 "The method create(Context, int) in the type MediaPlayer is not applicable for the arguments (new View.OnClickListener(){}, int)"
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    Button zero = (Button)this.findViewById(R.id.btnZero);
    zero.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            mp = MediaPlayer.create(this, R.raw.mamacita_zero);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

任何帮助或提示将不胜感激.日Thnx!

android

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

Java中不可修改的向量

我需要在我的程序中管理数据,其中 Java-Vector 适合同步的目的,通过索引提供动态大小和快速随机访问。

但我想让我的向量对其他程序类只读,而对我自己的类进行读写。

我读过Collections.unmodifiableList(),但如果我使我的Vector不可修改,它也将成为我班级的只读。

我怎么解决这个问题?

java

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

添加有符号和无符号的int

int main()
{
  unsigned int a=6;
  int b=-20;

  (a+b)>6?puts(">6"):puts("<=6");
}
Run Code Online (Sandbox Code Playgroud)

我很清楚三元运算符如何在此代码中工作.我无法理解这里添加有符号无符号整数.

尝试运行代码,输出"> 6",为什么?

c

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

使用ProGuard时不起作用

logcat在下面.怎么了?

07-24 10:54:13.529:E/AndroidRuntime(12130):致命异常:AsyncTask#3

07-24 10:54:13.529:E/AndroidRuntime(12130):java.lang.RuntimeException:执行doInBackground()时发生错误

07-24 10:54:13.529:E/AndroidRuntime(12130):在android.os.AsyncTask $ 3.done(AsyncTask.java:299)

07-24 10:54:13.529:E/AndroidRuntime(12130):at java.util.concurrent.FutureTask $ Sync.innerSetException(FutureTask.java:273)

07-24 10:54:13.529:E/AndroidRuntime(12130):at java.util.concurrent.FutureTask.setException(FutureTask.java:124)

07-24 10:54:13.529:E/AndroidRuntime(12130):at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:307)

07-24 10:54:13.529:E/AndroidRuntime(12130):at java.util.concurrent.FutureTask.run(FutureTask.java:137)

07-24 10:54:13.529:E/AndroidRuntime(12130):at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)

07-24 10:54:13.529:E/AndroidRuntime(12130):at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:569)

07-24 10:54:13.529:E/AndroidRuntime(12130):at java.lang.Thread.run(Thread.java:856)

07-24 10:54:13.529:E/AndroidRuntime(12130):引起:java.lang.AssertionError:非法类型变量引用

07-24 10:54:13.529:E/AndroidRuntime(12130):at org.apache.harmony.luni.lang.reflect.ImplForVariable.resolve(ImplForVariable.java:113)

07-24 10:54:13.529:E/AndroidRuntime(12130):at org.apache.harmony.luni.lang.reflect.ImplForVariable.getGenericDeclaration(ImplForVariable.java:127)

07-24 10:54:13.529:E/AndroidRuntime(12130):at org.apache.harmony.luni.lang.reflect.ImplForVariable.hashCode(ImplForVariable.java:46)

07-24 10:54:13.529:E/AndroidRuntime(12130):at java.util.Arrays.hashCode(Arrays.java:1260)

07-24 10:54:13.529:E/AndroidRuntime(12130):at com.google.gson.internal.$ Gson $ Types $ ParameterizedTypeImpl.hashCode(SourceFile:475)

07-24 10:54:13.529:E/AndroidRuntime(12130):at com.google.gson.reflect.TypeToken.(SourceFile:64)

07-24 10:54:13.529:E/AndroidRuntime(12130):at com.gaozhi.wh.asynctask.MyAsyncTask $ 2 $ 1.(SourceFile:78)

07-24 10:54:13.529:E/AndroidRuntime(12130):at com.gaozhi.wh.asynctask.MyAsyncTask $ 2.call(SourceFile:78)

07-24 10:54:13.529:E/AndroidRuntime(12130):at com.gaozhi.wh.asynctask.MyAsyncTask $ 2.call(SourceFile:1)

07-24 10:54:13.529:E/AndroidRuntime(12130):at …

android proguard

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

在C中的数组中迭代

嘿,我有这种类型的东西

eph_t *a;
Run Code Online (Sandbox Code Playgroud)

你可以看到类型是eph_t.它是C中的数组,但我不知道数组的大小,也不知道数组的最终元素是什么.有没有办法,我可以浏览整个数组,因为我想将数组中每个元素的值赋给某些东西.

我可以考虑哪些选择?如果您无法理解问题中的某些内容,只需发表评论,以便我可以通知您.

c arrays

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

如何在解除引用(C++)之前检查迭代器?

我正在使用静态分析工具来查找我的代码中的错误.它在解除引用之前显示错误你必须检查你的迭代器是否为NULL.我怎么检查这个?请参阅以下代码:

for(ClientThreadGroupList_t::iterator it = m_vecClientThreadGroup.begin(); it != m_vecClientThreadGroup.end(); it++) 
{
  nCount += (*it)->ConsoleList(pSocket); //error
}
Run Code Online (Sandbox Code Playgroud)

c++

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