我想扩展android.util.Log
该类以写入设备内部存储器中的日志文件,最好也是特定的TAGS
.
我目前有一个实现:
public class CustomLogger{
private final static Logger fileLog = Logger.getLogger(MainActivity.class);
private Context context;
public CustomLogger(Context c){
this.context = c;
final LogConfigurator logConfigurator = new LogConfigurator();
logConfigurator.setFileName(context.getFilesDir() + File.separator + "myApp.log");
logConfigurator.setRootLevel(Level.DEBUG);
logConfigurator.setLevel("org.apache", Level.ERROR);
logConfigurator.configure();
}
public void i(String TAG, String message){
// Printing the message to LogCat console
Log.i(TAG, message);
// Write the log message to the file
fileLog.info(TAG+": "+message);
}
public void d(String TAG, String message){
Log.d(TAG, message);
fileLog.debug(TAG+": "+message);
}
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,此自定义记录器会将内容存储(使用 …
我有一个Activity
3 Fragments
,现在每个片段有2 ToggleButtons
(总共六个按钮).
AlertDialog
在每次按钮点击时向用户显示An .
每个按钮执行一些不同的操作,因此警报对话框的布局/视图彼此不同,因此对话框的正按钮单击也不同,而负按钮单击几乎相同.
我已经在Activity中的onButtonPressed方法中实现了逻辑
onButtonPressed(View v){
switch(v.getId()){
case R.id.button1:
// create and show an AlertDialog
break;
}
case R.id.button2:
// create and show an AlertDialog
break;
}
case R.id.button3:
// create and show an AlertDialog
break;
}
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
这导致了许多重复的代码行,这不是AFAIK最好的东西.我愿意知道我是否应该保持当前的实现,或者创建一个包装类来创建和显示AlertDialogs.
对于Lollipop,可以简单地使用修改波纹颜色colorControlHighlight
.但对于pre-Lollipop(<API21),如何通过将背景设置为更改所实现的按下状态的颜色?attr/selectableItemBackground
我正在使用谷歌地图开发一个Android应用程序.目前我可以在我的应用程序中查看地图,但我不知道如何查看应用程序上的当前位置.
这是我的代码:
public class MapsFragment extends Fragment{
MapView m;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// inflat and return the layout
View v = inflater.inflate(R.layout.map_near_me, container, false);
m = (MapView) v.findViewById(R.id.map);
m.onCreate(savedInstanceState);
return v;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑: 和xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.google.android.gms.maps.MapView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/map" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这段代码工作正常,我知道'setmylocationenabled'可以帮助在FragmentActivity中启用,但不幸的是我必须将类型用作'Fragment'.我正在使用谷歌api v2.请有人帮忙解决这个问题.
android google-maps android-layout android-mapview google-maps-android-api-2
描述:
我有一个片段活动FirstRun,它由5个带滑动导航的片段组成,第2个和第3个片段包含2个需要由用户填充的EditTexts,它们不需要为空或未填充.
好吧,我可以使用OnTextChanged Listener验证字段,但用户可能只需滑动到下一个片段.
题 :
我的问题是,在用户在EditText中输入某些值之前,我是如何阻止滑动到下一个片段的?在验证用户输入之前,如何防止碎片创建?
示例:除非填充第二个片段的EditText,否则阻止滑动到第三个片段.
public static Connection connect;
public static ResultSet resultSet;
static final String DATABASE_URL = "jdbc:mysql://localhost/java_dev";
public ServerFunctions() {
String Driver = "com.mysql.jdbc.Driver";
String DB_USERNAME = "lucky";
String DB_PASSWORD = "lucky";
try {
Class.forName(Driver);
connect = DriverManager.getConnection(DATABASE_URL,DB_USERNAME, DB_PASSWORD);
} catch(Exception e) {
System.out.println("Database Not Connected ! ");
}
}
public static Boolean verificator(String username, String password) {
try {
PreparedStatement prepare = connect.prepareStatement(
"Select * from users where username='?'&&password='?'");
Run Code Online (Sandbox Code Playgroud)
上面是我的代码片段.我声明Connection
和Resultset
对象静态,因此可以从静态验证器方法调用它们.同样,verificator方法被声明为static,因此可以通过使用className.verificator(param,param)从不同的类作为类变量调用它.
它在我单独测试类时编译并运行,但是每当从不同的类调用时,我就会在PerparedStatement行中得到NullPointerException错误.
有人可以帮助我为什么会发生这种情况?
谢谢
我在Eclipse中将一个.java文件从一个项目导入到另一个项目.在这样做的过程中,Eclipse从源项目中删除了所有的.java文件和我的.apk文件.我知道我可以从.apk文件重建它们,但目前唯一的一个是在我的LG手机上.
如何将手机上的.apk从手机上取下来?我是否必须将手机设为root才能看到Data文件夹?我有Android文件管理器,但我没有看到如何上传到电脑.谢谢,加里
我有一个ArrayList
,我打算java.util.ArrayList.remove()
在android中使用该方法,但我的问题是,如果你有一个ArrayList
具有以下索引的值,然后在索引删除,其他人会被提升索引吗?这里有一个更简单的方法来理解我想问的问题:
Starting Arraylist: ------------------------ | Index | Value | ------------------------ | 0 | "a" | | 1 | "b" | | 2 | "c" | | 3 | "d" | | 4 | "e" | ------------------------
然后我在索引3处删除新数组将是数组A或数组B.
Arraylist A: Arraylist B: ------------------------ ------------------------ | Index | Value | | Index | Value | ------------------------ ------------------------ | 0 | "a" | | 0 | "a" | | 1 | "b" | | 1 | "b" …
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class LoginServlet extends HttpServlet
{
private void sendLoginPage (HttpServletResponse res, HttpServletRequest req, boolean error)
throws ServletException,IOException
{
res.setContentType("text/html");
PrintWriter o = res.getWriter();
o.println("<html><head><title>Sample Login Page</title></head><body>Welcome to Login Page : ");
if (error)
o.println("<fieldset><legend>Login Form : </legend>");
o.println("Login Failed, Please Try Again");
o.println("<form method="+"post"+">");
o.println("<br/><input type="+"text"+"value="+"username"+"/>");
o.println("<br/><input type="+"password"+"value="+""+"/>");
o.println("<br/><input type="+"button"+"value="+"Submit"+"/>");
o.println("</form></fieldset></body></html>");
}
public void doGet (HttpServletResponse res, HttpServletRequest req)
throws ServletException,IOException
{
sendLoginPage ( res, null, false ) ;
}
public void …
Run Code Online (Sandbox Code Playgroud)