小编Eli*_*ala的帖子

动态添加项目到Android中的NavigationView

我希望建立NavigationDrawer添加新项目的可能性(例如添加新城市的雅虎天气应用程序).我一直在NavigationDrawer使用NavigationView,在菜单中我有永久字段:

   <group
        android:id="@+id/group"
        android:checkableBehavior="single">
        <item
            android:checked="false"
            android:id="@+id/item1"
            android:icon="@drawable/ic_inbox_black_24dp"
            android:title="Item1" />
        <item
            android:checked="false"
            android:id="@+id/Item2"
            android:icon="@drawable/ic_inbox_black_24dp"
            android:title="Item2"
            />
    </group>
Run Code Online (Sandbox Code Playgroud)

我正在尝试添加新项目此方法:

 public boolean addNewItem(String itemName){
        Menu menu = navigationView.getMenu();
        menu.add(R.id.group,Menu.NONE,Menu.NONE,itemName);
        return true;
 }
Run Code Online (Sandbox Code Playgroud)

而且我得到的不完全是我想要的: 结果

有谁知道如何解决这个问题?或者为什么会这样?我不知道在哪里以及如何保存有关添加元素的信息.有任何想法吗?

android android-menu navigation-drawer

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

用于保持连接活动的Android Socket.IO最佳实践

我的Android应用程序正在使用该AndroidAsync库连接到客户端的Node.js服务器Socket.IO.套接字客户端是通过服务建立的.

  • 应用程序打开时,套接字需要保持打开/连接状态
  • 应用程序未打开时,套接字可以关闭
  • 有一个例外,当应用程序未打开时,套接字需要保持打开状态

我目前正在启动Socket.IO服务onResume并在应用程序中停止onPause每个服务Activity.

这看起来效率很低,因为我每次按下主页按钮或切换到应用程序中的其他活动时,基本上都会停止套接字并重新创建一个新套接字.

什么是处理保持套接字打开的上述要求的最佳方法?

public class SocketIOService extends Service {

    private Preferences prefs;
    private SocketIOClient socket;

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        try {
            ConnectCallback callback = new ConnectCallback() {
                @Override
                public void onConnectCompleted(Exception ex, SocketIOClient client) {
                    if (ex != null) {
                        ex.printStackTrace();
                        return;
                    }

                    Log.v("SOCKET IO CONNECTION", "ESTABLISHED");

                    client.setDisconnectCallback(new DisconnectCallback() {
                        @Override
                        public void onDisconnect(Exception e) { …
Run Code Online (Sandbox Code Playgroud)

sockets service android socket.io

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

Java/Arduino - 从串行端口读取数据

我有一个Java程序,我必须阅读Arduino发送的信息.我从这里获取了Java代码.现在,我真的不明白它是如何工作的,但我试图修改它,我得到了这个:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent;
import gnu.io.SerialPortEventListener;
import java.util.Enumeration;

public class Serial implements SerialPortEventListener {
    SerialPort serialPort;

    private static final String PORT_NAMES[] = {
            "/dev/tty.usbserial-A9007UX1", // Mac OS X
            "/dev/ttyUSB0", // Linux
            "COM3", // Windows
    };

    private BufferedReader input;
    private static OutputStream output;
    private static final int TIME_OUT = 2000;
    private static final int DATA_RATE = 115200;

    public void initialize() {
        CommPortIdentifier portId = null;
        Enumeration portEnum = CommPortIdentifier.getPortIdentifiers();

        while …
Run Code Online (Sandbox Code Playgroud)

java serial-port arduino

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

带有函数值的Python 3枚举

我注意到Python 3 Enums(链接)中的一个奇怪之处.
如果将Enum的值设置为函数,则会阻止将该属性包装为Enum对象,这会阻止您使用类似EnumCls['AttrName']动态加载属性的酷功能.

这是一个错误吗?有意进行了吗?
我搜索了一段时间,但没有提到你可以在枚举中使用的限制值.

以下是显示问题的示例代码:

class Color(Enum):
    Red = lambda: print('In Red')
    Blue = lambda: print('In Blue')

print(Color.Red)    # <function> - should be Color.Red via Docs
print(Color.Blue)   # <function> - should be Color.Bluevia Docs
print(Color['Red']) # throws KeyError - should be Color.Red via Docs
Run Code Online (Sandbox Code Playgroud)

此外,这是我第一次询问,所以让我知道是否有什么我应该做的不同!谢谢你的帮助!

python enums python-3.x

11
推荐指数
4
解决办法
2432
查看次数

键盘将 EditText 隐藏在 android 的 ScrollView 中?

我嵌套了 LinearLayouts,其中一个在 ScrollView 内有一组垂直的 EditText。问题每次我单击其中一个 EditText 和 Android 中的键盘时,这些 EditText 的一半都会消失,如果我在第一个编辑文本中写入,我什至看不到它或滚动到其中。

我在 Stackoverflow 中尝试了不同的解决方案,例如添加android:windowSoftInputMode="adjustPan|adjustResize",但没有成功。

这是我的MainActivity.xml

 LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    tools:context=".MainActivity">


    <ImageView
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_marginTop="10dp"
        android:src="@drawable/clac"
        android:scaleType="centerCrop"
        android:layout_gravity="center"
        />
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_gravity="center"
        android:layout_marginTop="16dp"
        >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Letter Grade"
            android:textSize="15sp"

            />
        <TextView

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Credit Hours"
            android:textSize="15sp"
            android:layout_marginLeft="60dp"
            />
    </LinearLayout>
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:focusable="true"
        android:focusableInTouchMode="true">
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_gravity="center"
    android:id="@+id/inputform">

    <LinearLayout

        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
android:layout_gravity="center"

        >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:orientation="vertical">


            <EditText
                android:layout_marginTop="10dp" …
Run Code Online (Sandbox Code Playgroud)

android scrollview android-layout android-studio android-5.1.1-lollipop

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

自定义适配器notifyDataSetChanged无法正常工作

我试着打电话,adapter.notifydatasetchanged()但根本不起作用.我该如何刷新列表?

public class CarListMenu extends Fragment{


    public CarListAdapter adapter= null;
    static ArrayList<carArrayItem> CarPriceItem ;
    private static ListView CarListView;



     public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            CarListView = (ListView) inflater.inflate(R.layout.car_price_list_menu, container, false);

            CarPriceItem.add(new carArrayItem("No","No","NO","NO" , "NO"));

            adapter = new CarListAdapter(getActivity().getApplicationContext(),CarPriceItem);
            CarListView.setAdapter(adapter);
            return CarListView;
        }

     public static class App extends Application{

            private static Context mContext;

            @Override
            public void onCreate() {
                super.onCreate();
                mContext = this;
            }

            public static Context getContext(){
                return mContext;
            }
        }


public static void change(ArrayList<HashMap<String, String>> …
Run Code Online (Sandbox Code Playgroud)

android android-listview android-adapter

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