androidactivity代碼
1. android上傳圖片到伺服器,求伺服器那邊和android的Activity的完整代碼。
伺服器端servlet代碼:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//獲取輸入流,是HTTP協議中的實體內容
ServletInputStream sis=request.getInputStream();
File file = new File(request.getSession().getServletContext().getRealPath("/img/"),"img_"+0+".jpg");
for (int imgnum = 0;file.exists();imgnum++)
{
file = new File(request.getSession().getServletContext().getRealPath("/img/"),"img_"+imgnum+".jpg");
}
//緩沖區
byte buffer[]=new byte[1024];
FileOutputStream fos=new FileOutputStream(file);
int len=sis.read(buffer, 0, 1024);
//把流里的信息循環讀入到文件中
while( len!=-1 )
{
fos.write(buffer, 0, len);
len=sis.readLine(buffer, 0, 1024);
}
fos.close();
sis.close();
}
android客戶端代碼:
public static void uploadFile(String imageFilePath)
{
String actionUrl = "http://192.168.1.32:8080/UploadServer/ImageServlet";
try
{
URL url =new URL(actionUrl);
HttpURLConnection con=(HttpURLConnection)url.openConnection();
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
con.setRequestMethod("POST");
DataOutputStream ds = new DataOutputStream(con.getOutputStream());
File file = new File(imageFilePath);
FileInputStream fStream = new FileInputStream(file);
int bufferSize = 1024;
byte[] buffer = new byte[bufferSize];
int length = -1;
while((length = fStream.read(buffer)) != -1)
{
ds.write(buffer, 0, length);
}
fStream.close();
ds.flush();
InputStream is = con.getInputStream();
int ch;
StringBuffer b =new StringBuffer();
while( ( ch = is.read() ) != -1 )
{
b.append( (char)ch );
}
ds.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
2. android編程中如何實現新建activity
A.創建一個android項目
也可以手工添加,在</activity>標簽下面加入
<activity android:name=".新Activity的名字"
android:label="新Activity的標題">
</activity>
這里需要注意的是,android:name="."這里有個點,這個點表示這個Activity在我所選擇的包com.INdroid.layout下。
5) 在新Activity中加入onCreate方法並且綁定layout。
關於Activity的跳轉問題,要補充一點,按鈕綁定setOnClickListener必須放在新建OnClickListener對象之後,不然不能跳轉。
到此,一個可以使用的activity即創建完成了,下一步是添加UI元素及實現頁面響應代碼
下面以添加一個checkbox為例說明,實現的效果是點擊主Activity界面,跳轉到CheckboxActivity 界面
1、向主Activity界面添加一個button。打開main..xml,使用outline窗口的「+」,添加一個button,填寫button的屬性
2、 在src/ActivityMain類,即主Activity的界面響應類中實現頁面跳轉代碼,
2.1 聲明 button 變數 和 監聽器 OnClickListener
2.2 實現 OnClickListener監聽器的跳轉邏輯,即onClihck 函數
2-3 綁定 監聽器OnClickListener 到 button 中
3、向checkboxActivity界面添加一個 checkbox 的 widget
4、向checkboxActivity界面添加呈現代碼
3. Android 中如何在java類中調用activity 中的一個方法
通常,您不應該以這種方式創建新的 MainActivity 實例。要打開一個新的 MainActivity,請使用 Intent。在您的情況下,您應該引用原始 MainActivity 實例,並在那裡調用此方法。不要以任何方式創建新的,因為您已經在運行它。
一個簡單的解決方法:
MainActivity.this.myMethod("Hello there")
您不必存儲mContext. 你已經在 MainActivity 裡面了。
因此,完整的代碼將是:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView myWebView = findViewById(R.id.webview);
myWebView.loadUrl("http://www.google.com");
myWebView.addJavascriptInterface(new WebAppInterface(), "Android");
}
public void myMethod(String test){
Toast.makeText(this, test, Toast.LENGTH_SHORT).show();
}
public class WebAppInterface {
/** Show a toast from the web page */
@JavascriptInterface
public void showToast(String toast) {
MainActivity.this.myMethod("Hello there");
}
}
}
實際上,我認為您甚至可以避免使用MainActivity.this., 並myMethod直接調用。
4. android中如何聲明activity
工程中每個要使用的activity都需要在Mainfest.xml中注冊,代碼如下:
在<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">的節點下添加如下:
<activity
android:name=".BrowserActivity">
</activity>
其中android:name=".BrowserActivity"中的BrowserActivity就是你的activity名字。