小编Den*_*nis的帖子

ScrollView中不可滚动的ListView

我正在尝试制作这样的布局:

布局

问题是我不希望ListViews可滚动.我希望它们尽可能高,并使整个屏幕可滚动.如果我将ListView的高度设置为ListViews,则不起作用.使它工作的唯一方法是设置一个特定的高度 - 但我不知道ListView中有多少项.

我知道我不应该将ListView放在ScrollView中 - 但我不希望ListView可以滚动,只是为了显示所有项目.

也许还有更好的方法让它发挥作用?

android scrollview android-listview

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

片段中不适当的上下文菜单

我有一个带有导航抽屉和片段的活动.他们每个人都有自己的ListView和上下文菜单.

导航抽屉内的上下文菜单工作正常.

问题在于片段内的菜单.当我进入片段的上下文菜单时,会显示两个导航抽屉菜单和片段的菜单.

活动的方法

@Override
protected void onCreate(Bundle savedInstanceState) {
    registerForContextMenu(mDrawerList); // mDrawrList is the navigation drawer's ListView
}

@Override
public boolean onContextItemSelected(MenuItem item) {
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
    switch(item.getItemId()) {
    case R.id.action_edit:
        // Do some stuff
        return true;
    case R.id.action_delete:
        // Do some stuff
        return true;
    }
    return super.onContextItemSelected(item);
}

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
        ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.drawer, menu);
}
Run Code Online (Sandbox Code Playgroud)

片段的方法

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-contextmenu navigation-drawer

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

在另一个Activity中更新后刷新ListView

我有两个简单的活动 - 活动1:来自Array Activity2的ListView:EditText,用于编辑Activity1中单击的行

当我在Activity2中编辑值并返回到Activity1时,ListView不会重新加载新值.

我想从Activity2返回或恢复Activity1或更新列表的东西时刷新ListView.

我的代码:

static ArrayAdapter<String> dataAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
            // Loading the values to list array
        String[][] fulllist = loadArrays();
        String[] list = new String[fulllist.length];
        for(int i = 0; i<fulllist.length; i++) {
            list[i] =  fulllist[i][1];
            }
            // --------------------------------

            dataAdapter = new ArrayAdapter<String>(this,
                                android.R.layout.simple_list_item_1,
                                list);
            setListAdapter(dataAdapter);
            }
@Override
public void onResume() {
        super.onResume();
        // Loading the values to list array
        String[][] fulllist = loadArrays();
        String[] list = new String[fulllist.length];
        for(int i = 0; …
Run Code Online (Sandbox Code Playgroud)

android listview android-arrayadapter

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

将毫秒转换为年,月和日的最佳方法

我正在尝试将毫秒日期转换为years months weeks和的数量days.

例如:5 months, 2 weeks and 3 days1 year and 1 day.

我不想要:7 days或者4 weeks>这应该是1 week1 month.

我尝试了几种方法,但它总是变得类似7 days and 0 weeks.

我的代码:

int weeks = (int) Math.abs(timeInMillis / (24 * 60 * 60 * 1000 * 7));
int days = (int) timeInMillis / (24 * 60 * 60 * 1000)+1);
Run Code Online (Sandbox Code Playgroud)

我必须在天数上加1,因为如果我有23个小时应该是1天.

请解释如何正确转换它,我认为有更有效的方法来做到这一点.

java android date

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

按项目位置在 GridView 中设置背景

我想更改 GridView 中特定项目的背景颜色(按位置)。

gridview.getChildAt(1).setBackgroundResource(android.R.drawable.btn_default);
Run Code Online (Sandbox Code Playgroud)

不起作用。

如果我在 OnClickListener 中使用它,它会起作用:

public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
    view.setBackgroundResource(android.R.drawable.btn_default);
}
Run Code Online (Sandbox Code Playgroud)

但我想不点击就改变它。


编辑

图像适配器:

public class ImageAdapter extends BaseAdapter {
private final String TAG = getClass().toString();

private Context mContext;

public ImageAdapter(Context c) {
    mContext = c;
}

public int getCount() {
    return mThumbIds.length;
}

public Object getItem(int position) {
    return null;
}

public long getItemId(int position) {
    return 0;
}

public View getView(int position, View convertView, ViewGroup parent) {
    ImageView …
Run Code Online (Sandbox Code Playgroud)

android gridview background view

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

GridView getChildAt()返回null

我正在尝试从GridView获取视图.不幸的是,它回来了null.

的onCreate():

GridView gridview = (GridView) findViewById(R.id.gridView);
gridview.getChildAt(3).setBackgroundResource(R.drawable.list_selector_holo_light);
Run Code Online (Sandbox Code Playgroud)

gridview.getChildCount() 也返回0!

我该怎么做才能获得这个视图?我知道有一个选项可以更改适配器中的背景,但我必须动态地执行它.

感谢帮助!


编辑

setAdapter:

gridview.setAdapter(new ImageAdapter(this));
Run Code Online (Sandbox Code Playgroud)

ImageAdapter:

public View getView(int position, View convertView, ViewGroup parent) {
    final ImageView imageView;
    if (convertView == null) {  // if it's not recycled, initialize some attributes
        imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(8, 8, 8, 8);
    } else {
        imageView = (ImageView) convertView;
    }

    imageView.setImageResource(mThumbIds[position]);
    return imageView;
}
Run Code Online (Sandbox Code Playgroud)

android gridview view

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

从ListView和ArrayAdapter中删除项目

我正在尝试创建一个简单的代码,在用户单击它时删除ListView项.我的代码:

static ArrayAdapter<String> dataAdapter;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_notifications_list);


    String[] arraylist = {"a", "b", "c", "d"};
    List<String> list = Arrays.asList(arraylist);


    dataAdapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1,
            list);

    setListAdapter(dataAdapter);

}

public void onListItemClick(ListView l, View v, final int position, long id) {
    dataAdapter.remove(dataAdapter.getItem(position));
    dataAdapter.notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)

单击该项目时,应用程序崩溃并显示以下错误:

D/AndroidRuntime(31862): Shutting down VM
W/dalvikvm(31862): threadid=1: thread exiting with uncaught exception (group=0x40b4e300)
E/AndroidRuntime(31862): FATAL EXCEPTION: main
E/AndroidRuntime(31862): java.lang.UnsupportedOperationException
E/AndroidRuntime(31862):    at java.util.AbstractList.remove(AbstractList.java:638)
E/AndroidRuntime(31862):    at java.util.AbstractList$SimpleListIterator.remove(AbstractList.java:75)
E/AndroidRuntime(31862):    at java.util.AbstractCollection.remove(AbstractCollection.java:229)
E/AndroidRuntime(31862):    at android.widget.ArrayAdapter.remove(ArrayAdapter.java:244)
E/AndroidRuntime(31862):    at com.dennis.notifications.NotificationList.onListItemClick(NotificationList.java:113)
E/AndroidRuntime(31862): …
Run Code Online (Sandbox Code Playgroud)

android listview android-listview

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

通过通知操作复制到剪贴板

我正在尝试执行通知操作(适用于Android 4.1+),将一些文本复制到剪贴板.我阅读了有关复制粘贴功能的参考资料,现在我有了这个:

        ClipboardManager clipboard = (ClipboardManager)
            mContext.getSystemService(Context.CLIPBOARD_SERVICE);
    ClipData clip = ClipData.newPlainText("simple text","Hello, World!");
Run Code Online (Sandbox Code Playgroud)

我不知道如何把它放入一个将被放入PendingIntent的Intent中.

如果你能给我一些例子并解释它 - 它会很棒!我是android开发的新手.先感谢您.

编辑: 我发现了这个:https://stackoverflow.com/a/12601766/1866009但我不能正确理解.

android android-intent android-notifications

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