반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Swift
- Alamofire
- remote config
- Observable
- swipe
- dictionary
- UIButton
- RxSwift
- Android
- 다크모드
- gcd
- 문자열
- UITabBarController
- Firebase
- 웹뷰
- Java
- subscript
- github
- WebView
- SwiftUI
- autolayout
- string
- LazyHStack
- SwiftLint
- UIScrollView
- ios
- 라이트모드
- Apple
- NavigationLink
- Realtime Database
Archives
- Today
- Total
점진적 과부하 개발 블로그
Android 14주차 본문
반응형
ListAdaptaer
package com.induk;
import androidx.appcompat.app.AppCompatActivity;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
String[] values = {
"Apple",
"Apple",
"Apple",
"Apple",
"Apple",
"Apple",
"Apple",
"Apple",
"Apple",
"Apple"
};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_list_item_1, values
// simple_list_item_checked // CheckBox
);
setListAdapter(adapter);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
}
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
String item = (String) getListAdapter().getItem(position);
Toast.makeText(this, item + "selecetd", Toast.LENGTH_SHORT).show();
}
ss
package com.induk;
import androidx.appcompat.app.AppCompatActivity;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.core.Observable;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.functions.Consumer;
import io.reactivex.rxjava3.schedulers.Schedulers;
public class MainActivity extends ListActivity {
Disposable backgroundTask;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
Observable<String[]> source = Observable.fromCallable(
() -> {
String[] values = new HttpHelper().getList();
// NULL value not allowed.
if (values == null) {
values = new String[] {"No data"};
}
return values;
}
);
backgroundTask = source.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<String[]>() {
@Override
public void accept(String[] result) {
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,
android.R.layout.simple_list_item_1, result);
setListAdapter(adapter);
backgroundTask.dispose();
}
});
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
String item = (String) getListAdapter().getItem(position);
Toast.makeText(this, item + " selected", Toast.LENGTH_SHORT).show();
}
}
ss
package com.induk;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class HttpHelper {
public String[] getList() {
// Declare variable(s).
String[] arrList = null;
JSONObject listObject = null;
String url = "http://115.89.165.130:6776/v1/api/getList";
try{
OkHttpClient client = new OkHttpClient();
client = new OkHttpClient.Builder().retryOnConnectionFailure(false).build();
// Request
Request request = new Request.Builder()
.url(url)
.get()
.build();
Response response = client.newCall(request).execute();
String strRet = response.body().string();
JSONParser parser = new JSONParser();
listObject = (JSONObject)parser.parse(strRet);
// error check.
if (listObject == null) {
return null;
}
JSONArray jArr = (JSONArray) listObject.get("data");
arrList = new String[jArr.size()];
for (int ii=0; ii < jArr.size(); ii++) {
JSONObject j = (JSONObject) jArr.get(ii);
arrList[ii] = (String) j.get("name");
}
} catch (Exception ex){
return null;
}
// Return.
return arrList;
}
}
gradle
plugins {
id 'com.android.application'
}
android {
compileSdk 32
defaultConfig {
applicationId "com.induk"
minSdk 23
targetSdk 32
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
configurations.all {
resolutionStrategy.dependencySubstitution {
substitute module('org.hamcrest:hamcrest-core:1.1') with module('junit:junit:4.10')
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.6.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
// https://mvnrepository.com/artifact/io.reactivex.rxjava3/rxjava
implementation group: 'io.reactivex.rxjava3', name: 'rxjava', version: '3.1.4'
// https://mvnrepository.com/artifact/io.reactivex.rxjava3/rxandroid
implementation group: 'io.reactivex.rxjava3', name: 'rxandroid', version: '3.0.0'
// https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp
implementation group: 'com.squareup.okhttp3', name: 'okhttp', version: '4.9.3'
// https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple
implementation group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
}
반응형
'Android' 카테고리의 다른 글
Android RxJava (0) | 2022.05.23 |
---|---|
Android 테이블 레이아웃/ 상대적 레이아웃 (0) | 2022.04.18 |
Android 가중치(weight) (0) | 2022.04.17 |
Android에서 이미지뷰 사용 (0) | 2022.04.16 |
Android 사용자 인터페이스 기초 (0) | 2022.04.15 |