我希望建立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
应用程序正在使用该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) 我有一个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) 我注意到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)
此外,这是我第一次询问,所以让我知道是否有什么我应该做的不同!谢谢你的帮助!
我嵌套了 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
我试着打电话,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 ×4
android-menu ×1
arduino ×1
enums ×1
java ×1
python ×1
python-3.x ×1
scrollview ×1
serial-port ×1
service ×1
socket.io ×1
sockets ×1