このプログラムは入力された名前、職業などのテキスト情報をphpファイルに送信するプログラムなのです。
そしてテーブルに挿入された文字をlogに表示するものです。
質問1 どこで送信する文字列を指定しているのか
->プログラムの val stringRequest = object : StringRequest(Request.Method.POST,URL,Response.Listener<String>,,,,,,,,,,,の部分で情報を送信しているのはわかるのですが、取得した文字列を指定しているのがどこなのかがわかりません。
質問2
responce -> の意味はphpファイルの cho json_encode($employee); ではきだされたJSONコードを取得する、ということで合っていますでしょうか。この矢印はどういった意味として考えればよいのでしょうか
この動画をまねしています
https://www.youtube.com/watch?v=8ND92K8_wcQ&list=PLTZBxMA9wx8ZQfxlTzxvgWFuRmhNegzdD
初心者の質問です。
kotlin
1 2register.kt 3 4import android.app.ProgressDialog 5import android.net.sip.SipSession 6import android.support.v7.app.AppCompatActivity 7import android.os.Bundle 8import android.preference.EditTextPreference 9import android.view.View 10import android.widget.Button 11import android.widget.EditText 12import android.widget.ProgressBar 13import android.widget.Toast 14import android.widget.Toast.LENGTH_LONG 15import com.android.volley.Request 16import com.android.volley.Request.Method.POST 17import com.android.volley.Response 18import com.android.volley.VolleyError 19import com.android.volley.toolbox.StringRequest 20import org.json.JSONObject 21import java.lang.reflect.Method 22import java.net.URL 23import com.android.volley.toolbox.Volley; 24import com.android.volley.RequestQueue 25import kotlinx.android.synthetic.main.activity_register.* 26 27class register : AppCompatActivity() { 28 29 private var editTextName : EditText? = null 30 private var editTextPosition : EditText? = null 31 private var editTextSalary : EditText? = null//変数宣言? 32 private var editTextExperience : EditText? = null 33 34 //private var button:Button? = null 35 private var pd:ProgressBar? = null 36 private var URL = "http://example.com/employee.php" 37 38 override fun onCreate(savedInstanceState: Bundle?) { 39 super.onCreate(savedInstanceState) 40 setContentView(R.layout.activity_register) 41 //pd!!.visibility = android.widget.ProgressBar.INVISIBLE 42 43 //pd = ProgressBar(this@register) 44 45 editTextName = findViewById(R.id.editTextName) as EditText 46 editTextPosition = findViewById(R.id.editTextPosition) as EditText 47 editTextSalary = findViewById(R.id.editTextSalary) as EditText 48 editTextExperience = findViewById(R.id.editTextExperience) as EditText 49 50 51 } 52 53 fun sendbutton(v: View){ 54 sendData() 55 } 56 57 private fun sendData(){ 58 //pd!!.visibility = android.widget.ProgressBar.VISIBLE 59 //pd.setMessage("Sending data please wait...") 60 //pd.show() 61 62 //質問1 63 val stringRequest = object : StringRequest(Request.Method.POST,URL,Response.Listener<String> 64 65 { 66 67//質問2 68responce -> 69 70 //pd!!.dismiss() 71 //pd!!.visibility = android.widget.ProgressBar.INVISIBLE 72 val obj = JSONObject(responce) 73 74 Toast.makeText(applicationContext, obj.getString("name"), Toast.LENGTH_LONG).show() 75 //obj.getString("name") 76 77 },object: Response.ErrorListener{ 78 override fun onErrorResponse(p0: VolleyError?){ 79 //pd!!.dismiss() 80 //pd!!.visibility = android.widget.ProgressBar.INVISIBLE 81 Toast.makeText(applicationContext,p0?.message,Toast.LENGTH_LONG).show() 82 } 83 }) 84 85 { 86 override fun getParams():MutableMap<String,String> { 87 88 val params = HashMap<String, String>() 89 90 params.put("name", editTextName?.text.toString()) 91 params.put("position", editTextName?.text.toString()) 92 params.put("salary", editTextName?.text.toString()) 93 params.put("experience", editTextName?.text.toString()) 94 95 return params 96 97 98 } 99 100 } 101 102 VolleyString.instance?.addToRequestQueue(stringRequest) 103 104 finish() 105 } 106 107 fun tohome(v: View){ 108 finish() 109 } 110}
kotlin
1 2VolleyString.kt 3 4import android.app.Application 5import android.app.DownloadManager 6import com.android.volley.Request 7import com.android.volley.RequestQueue 8import com.android.volley.toolbox.Volley 9 10class VolleyString:Application(){ 11 override fun onCreate() { 12 super.onCreate() 13 instance = this 14 } 15 16 val requestQueue : RequestQueue? = null 17 18 get(){ 19 if(field==null){ 20 return Volley.newRequestQueue(applicationContext) 21 } 22 return field 23 } 24 25 fun <T> addToRequestQueue(request: Request<T>){ 26 //request.tag=TAG 27 requestQueue?.add(request) 28 } 29 30 companion object { 31 private val TAG = VolleyString::class.java.simpleName 32 @get:Synchronized var instance : VolleyString? = null 33 private set 34 } 35 36 37}
buildはできてるっぽいです
BUILD SUCCESSFUL in 14s
44 actionable tasks: 12 executed, 32 up-to-date
追記 質問と関係ないのですが
エミュレーター起動時のエラー内容 logより赤字所々抜粋
09-04 05:39:39.910 1684-1742/? E/storaged: getDiskStats failed with result NOT_SUPPORTED and size 0
09-04 05:39:46.021 11721-11735/system_process E/memtrack: Couldn't load memtrack module
09-04 05:39:49.756 11721-11750/system_process E/EGL_emulation: eglQueryContext 32c0 EGL_BAD_ATTRIBUTE
td 11750: eglQueryContext(1858): error 0x3004 (EGL_BAD_ATTRIBUTE)
09-04 05:39:50.630 11721-11744/system_process E/KernelCpuSpeedReader: Failed to read cpu-freq: /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state (No such file or directory)
09-04 05:44:10.556 11721-11735/system_process E/memtrack: Couldn't load memtrack module
09-04 05:44:29.986 11829-11829/com.google.android.inputmethod.latin E/ActivityThread: Service com.firebase.jobdispatcher.GooglePlayReceiver has leaked ServiceConnection ait@97445f4 that was originally bound here
android.app.ServiceConnectionLeaked: Service com.firebase.jobdispatcher.GooglePlayReceiver has leaked ServiceConnection ait@97445f4 that was originally bound here
at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:1610)
at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:1502)
at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1659)
at android.app.ContextImpl.bindService(ContextImpl.java:1612)
at android.content.ContextWrapper.bindService(ContextWrapper.java:698)
at ahu.a(PG:56)
at aib.handleMessage(PG:22)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
09-04 05:45:05.380 12378-31794/com.google.android.googlequicksearchbox:search E/IAudioFlinger: createRecord returned error -12
09-04 05:45:05.380 12378-31794/com.google.android.googlequicksearchbox:search E/AudioRecord: AudioFlinger could not create record track, status: -12
09-04 05:45:05.381 12378-31794/com.google.android.googlequicksearchbox:search E/AudioRecord-JNI: Error creating AudioRecord instance: initialization check failed with status -12.
09-04 05:45:05.384 12378-31794/com.google.android.googlequicksearchbox:search E/android.media.AudioRecord: Error code -20 when initializing native AudioRecord object.
あなたの回答
tips
プレビュー