我与一些团队成员开发了一个Android应用程序,通过移动设备收集现场数据.
现在这个应用程序将投入生产.所以普通人会使用这个应用程序.我们还需要创建一个文档来解释我的Android应用程序中引入的所有内容以及运行此应用程序的最低硬件要求是什么,没有错误.
现在我怎么知道什么是最低硬件要求.
基本上在我的约四的应用TextField
,三Spinner
,Date
,EditText
和两个ImageView
.
所以我怎么知道运行这个应用程序的最低内存要求是什么.
我已经在其中一个移动设备中尝试了这个应用程序,其中几乎所有内存都被其他应用程序使用.我的应用程序无法捕获照片.当我删除一些应用程序,然后我的应用程序工作正常.
这就是为什么我想知道运行我的应用程序的最低内存要求是什么.
在我的应用程序中,有四个TextArea,我想在一个文本区域只输入四个字符,光标自动移动到下一个TestArea.再次当我在此TextArea中输入四个字符时,再次光标自动移动到下一个TextArea.
示例:在安装Window XP时,它需要"Key",当您在第一部分输入四个字符时有四个部分,然后光标自动移动到下一部分.
在我的应用程序中我想要的相同.
首先,我添加CustomizedTextFields.jar,然后创建四个IntegerField:
private IntegerField text1;
private IntegerField text2;
private IntegerField text3;
private IntegerField text4;
Run Code Online (Sandbox Code Playgroud)
在此之后,我在我的框架上显示所有这些IntegerField.
现在我尝试使用此代码将光标发送到下一个字段,但它不起作用:
text1.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
int a2 = text1.getText().length();
if (a2 == 3) {
text2.getCursor();
}
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
}
});
Run Code Online (Sandbox Code Playgroud) 我想编写从表中提供最大id的代码,但它会抛出错误.
码:
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("XXXXX", "XXXX", "XXX");
Statement st2 = con.createStatement();
ResultSet idMax = st2.executeQuery("select nvl(max(work_id),0) from workdetails");
int id2 = idMax.getInt(0); // throw error: Invalid column index
System.out.println(id2);
// ****************************
int id2 = idMax.getInt("work_id");
System.out.println(id2); // throw error: ResultSet.next was not called
Run Code Online (Sandbox Code Playgroud) 目前我有一个应用程序,我可以使用JdbcOdbcDriver访问.mdb或.accdb文件以附加一些数据.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:MsAccessDSN");
Run Code Online (Sandbox Code Playgroud)
但在此,我需要配置系统DSN.我们需要添加新的数据源(Microsoft Access Driver),然后需要提供.mdb文件的位置.只有这样,上面的代码才有用.
假设我想在其他系统上运行我的应用程序,那么我需要对该计算机执行相同的操作.如果我将我的应用程序提供给客户端,他/她不知道如何配置.mdb文件.那么我的全部努力都会浪费.因此,我可以使用任何驱动程序通过我的Java代码创建.mdb文件,然后将所有数据附加到.mdb文件的表中.或者还有其他方法,Java代码可以创建.mdb文件并能够访问此数据库文件.
我尝试了这个代码,无需配置系统DNS即可附加数据:
public class TestMsAccess {
private static Connection con;
private static Statement stm;
private static String tableName = "EmpDetail";
private static int id_is = 2;
private static String name_is = "Employee1";
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\MSAccessProject/Employee.mdb", "", "");
stm = con.createStatement();
// enter value into table
String addRow = "INSERT INTO " + tableName + " VALUES ( "
+ …
Run Code Online (Sandbox Code Playgroud) 我在 TableLayout 中定义了六个按钮:-
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
android:shrinkColumns="*"
android:stretchColumns="*" >
<TableRow
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center" >
<Button
style="@style/CustomStyleButton2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_span="1"
android:text="Btn1" />
<Button
style="@style/CustomStyleButton2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_span="1"
android:text="Btn1" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" >
<Button
style="@style/CustomStyleButton2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_span="1"
android:text="Btn1" />
<Button
style="@style/CustomStyleButton2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_span="1"
android:padding="5dp"
android:text="Btn1" />
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" >
<Button
style="@style/CustomStyleButton2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_span="1"
android:text="Btn1" />
<Button
style="@style/CustomStyleButton2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_span="1"
android:text="Btn1" />
</TableRow>
</TableLayout>
Run Code Online (Sandbox Code Playgroud)
其显示是这样的:
在这里我想将所有这些按钮分开。当我应用填充或边距时,右侧的按钮不适合屏幕,并且某些部分被剪切。
这里我给第一行设置了 …
在我的应用程序中,我通过Android摄像头捕获照片,然后我想将其发送到服务器.为此我使用Client Socket编程.我将捕获照片转换为bytearray(byte []),然后将其发送到服务器.每件事都在事实上发挥作用.
问题在那里我无法将原始照片发送到服务器.缩略图照片由Android手机发送.但是当我通过相机捕捉照片时,原始照片就在画廊中.
如何在我的应用程序中使用此原始照片?
我的代码:
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra("outputFormat",Bitmap.CompressFormat.JPEG);
cameraIntent.putExtra("return-data", true);
startActivityForResult(Intent.createChooser(cameraIntent, "Select Picture"),
CAMERA_REQUEST);
Run Code Online (Sandbox Code Playgroud)
在onActivityResult方法中:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_REQUEST) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
// byte[] a = (byte[]) data.getExtras().getByteArray("data"); // I also use this but not work
ByteArrayOutputStream bos = new ByteArrayOutputStream();
photo.compress(CompressFormat.JPEG, 100, bos);
byte[] bitmapdata = bos.toByteArray();
}
}
Run Code Online (Sandbox Code Playgroud)
在bitmapdata照片是有,但压缩的照片不是原始的.有人说,改变压缩质量领域(CompressFormat.JPEG,100,bos); 在0到100之间,但什么都不会发生.
- >>还有其他方法可以获得相机拍摄的原始照片 …
我正在从表中检索数据,但不是所有行,我一次想要20行进行分页.为此,我使用limit关键字,它在Mysql中完美运行,但在Oracle中没有.
码:
"select "+ "C.CONTRACTOR_ID,C.CONTRACTOR_NAME,nvl(C.CONTACT_PERSON_1,'-'),nvl(C.CONTACT_PERSON_2,'-'),C.REGISTRATION_NO,CRA.DESCRIPTION REG_AUTH_NAME,"+
"to_char(C.VALID_FROM,'dd/mm/yyyy'),to_char(C.VALID_TO,'dd/mm/yyyy'),CC.DESCRIPTION CONTRACTOR_CLASS,C.INCORP_PLACE,"+
"IT.DESCRIPTION INCORP_TYPE,nvl(to_char(C.DATE_OF_INCORP,'dd/mm/yyyy'),'-') DATE_OF_INCORP,C.ADDRESS1,nvl(C.ADDRESS2,'-'),nvl(C.EMAIL_ID,'-'),"+
"nvl(C.WEBSITE_URL,'-'),nvl(C.PHONE_NO,'-'),nvl(C.FAX_NO,'-'),nvl(C.MOBILE_NO,'-'),C.BANK_NAME,C.BANK_BRANCH,C.ACCOUNT_NO,C.IFSC_CODE," +
"C.PAN_NO,nvl(C.TIN_NO,'-'),nvl(C.CST_NO,'-') "+
"from "+
"CONTRACTOR C "+
"inner join CONTRACTOR_REG_AUTH CRA on CRA.REG_AUTH_ID=C.REG_AUTH_ID "+
"inner join CONTRACTOR_CLASS CC on CC.CLASS_ID=C.CONTRACTOR_CLASS_ID "+
"inner join INCORPORATION_TYPE IT on IT.INCORP_TYPE=C.INCORP_TYPE "+
"limit " + offset + ", " + noOfRecords ";
Run Code Online (Sandbox Code Playgroud)
这里没有按关键字排序.我正在从不同的表中检索数据,然后一次只显示20行.
当我按下取消按钮时,我希望窗口关闭,但它不起作用.
码:
public class FirstClass{
private JFrame frame;
private JButton btnCancel;
public FirstClass() {
frame = new JFrame("GRIIS Data Transfer [Mobile to PC]");
frame.setBounds(200,200,900,450);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
btnCancel = new JButton("Cancel");
btnCancel.setBounds(800, 5, 85, 25);
frame.add(btnCancel);
btnCancel.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
System.exit(0);
}
});
}
});
}//end of constructor
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
FirstClass window …
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中有一个JTable,我想在创建表后插入行.
以下所有代码都在框架的构造函数中.
码:
private TableModel model = new AbstractTableModel(){
String[] columnNames = {"First Name","Last Name","Sport","# of Years","Vegetarian"};
private Object[][] data = {};
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return data.length;
}
public String getColumnName(int col) {
return columnNames[col];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
public boolean isCellEditable(int row, int col) {
retuen false;
}
public Class getColumnClass(int c) {
return getValueAt(0, …
Run Code Online (Sandbox Code Playgroud) 我的 Android 应用程序中有 exoplayer 并希望以编程方式执行“前进”、“倒带”,并且这两个按钮不在控制视图布局中。
这两个按钮在 exoplayer 视图之外,但在屏幕中,当用户单击“前进”或“倒带”时,它将相应地工作。
一些博客给出了解决方案,但都用于控制视图,例如:
app:fastforward_increment="30000"
app:rewind_increment="30000"
Run Code Online (Sandbox Code Playgroud)
但就我而言,按钮完全在播放器视图之外。
之前在这里问过同样的问题,但没有适当的解决方案。
尝试了以下代码但没有得到任何影响:
//switch case onClick listener for 'Forward' and 'Rewind'
case R.id.text_view_rewind:
simpleExoPlayerView.setRewindIncrementMs(5000);
break;
case R.id.text_view_forward:
simpleExoPlayerView.setFastForwardIncrementMs(5000);
break;
Run Code Online (Sandbox Code Playgroud) 在我的java应用程序中,我想将一些图像从客户端传输到服务器.我使用Socket连接客户端和服务器.当我将字符串从客户端传输到服务器但我无法传输图像文件时,它正在工作.
我在用
BufferedInputStream
BufferedOutputStream
用于传输字符串.
我知道要传输文件我需要使用FileInputStream:
BufferedInputStream bis bis = new BufferedInputStream(new FileInputStream("111.JPG"));
Run Code Online (Sandbox Code Playgroud)
但我不知道,究竟需要写什么.所以请通过一些代码示例给出答案.
如何获取或打印字符串ArrayList<String[]>
?
ArrayList<String[]> arrayList = new ArrayList<>();
arrayList.add(new String[]{"A1","A1","A3"});
arrayList.add(new String[]{"B1","B1","B3"});
arrayList.add(new String[]{"C1","C1","C3"});
System.out.println("*** 1 ***");
System.out.println(arrayList);
System.out.println("*** 2 ***");
for (int i = 0; i < arrayList.size(); i++) {
System.out.println((String[])arrayList.get(i));
}
System.out.println("*** 3 ***");
for (int i = 0; i < arrayList.size(); i++) {
System.out.println(arrayList.get(i).toString());
}
System.out.println("*** 4 ***");
for (int i = 0; i < arrayList.size(); i++) {
String[] strings = arrayList.get(i);
System.out.println(strings);
}
Run Code Online (Sandbox Code Playgroud)
输出:
*** 1 ***
[[Ljava.lang.String;@2a85f3d6, [Ljava.lang.String;@404b7c69, [Ljava.lang.String;@1bd4f279]
*** 2 ***
[Ljava.lang.String;@2a85f3d6
[Ljava.lang.String;@404b7c69
[Ljava.lang.String;@1bd4f279 …
Run Code Online (Sandbox Code Playgroud)