2016-09-27 1 views
0

현재 첫 번째 앱을 사용 중이므로 시도하고 코드를 사용하여 Log.e()에 오류 메시지를 표시합니다. 그래서 나는 Toast으로 Log.e() 오류를 표시하는 방법을 묻는거야? 여기토스트로 Log.e()를 표시합니다.

은 내가 JSCH

package beny.com.solehap; 

import android.app.Activity; 
import android.app.ProgressDialog; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.os.AsyncTask; 
import android.support.v7.app.AlertDialog; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.Window; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.Toast; 

import com.jcraft.jsch.*; 

import java.io.BufferedReader; 
import java.io.ByteArrayInputStream; 
import java.io.ByteArrayOutputStream; 
import java.io.InputStreamReader; 

public class MainActivity extends Activity { 
    String status; 

    private Boolean IsRunning; 
    private String eror; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.activity_main); 
     Button test = (Button) findViewById(R.id.btntest); 
     Button login = (Button) findViewById(R.id.login); 
     Button keluar = (Button) findViewById(R.id.btnexit); 
     test.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       new sshkonek().execute(); 
      } 
     }); 

     login.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent login = new Intent(MainActivity.this, login.class); 
       startActivity(login); 
      } 
     }); 

     keluar.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       close(); 
      } 
     }); 
    } 

    public void close(){ 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setMessage("Sure to exit?").setCancelable(false).setPositiveButton("Ya", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       MainActivity.this.finish(); 
      } 
     }).setNegativeButton("Tidak", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       dialog.cancel(); 
      } 
     }).show(); 
    } 


    public void konek() { 
     sshkonek task = new sshkonek(); 
    } 

    public class sshkonek extends AsyncTask<String, Void, String>{ 
     ByteArrayOutputStream baos= new ByteArrayOutputStream(); 
     ByteArrayInputStream bais=new ByteArrayInputStream(new byte[1000]); 
     ProgressDialog loading; 


     @Override 
     protected void onPreExecute() { 
      loading = new ProgressDialog(MainActivity.this); 
      loading.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
      loading.setMessage("Memproses.. Mohon Tunggu"); 
      loading.setCancelable(true); 
      loading.setMax(100); 
      loading.show(); 
     } 

     @Override 
     protected String doInBackground(String... params) { 
      String host = "192.168.197.101"; 
      String user = "pi"; 
      String pwd = "raspberry"; 
      int port = 22; 
      JSch js = new JSch(); 

      try{ 
       Session sesi = js.getSession(user, host, port); 
       sesi.setPassword(pwd); 
       sesi.setConfig("StrictHostKeyChecking", "no"); 
       sesi.connect(100); 

       ChannelExec kanal = (ChannelExec)sesi.openChannel("exec"); 
       BufferedReader in=new BufferedReader(new InputStreamReader(kanal.getInputStream())); 
        kanal.setOutputStream(baos); 
        kanal.setInputStream(bais); 
        //koman 
        kanal.setCommand("ls"); 
        kanal.connect(); 
       publishProgress(); 
       try { 
        Thread.sleep(3500); 
       }catch (Exception ignored){}; 
       kanal.disconnect(); 

      }catch (Exception e){ 
       Log.e("ERROR", "ERROR IN CODE: " + e.toString()); 

       e.printStackTrace(); 
       return "ERROR_IN_CODE"; 
      } 
      return baos.toString(); 
     } 

     @Override 
     protected void onPostExecute(String unused) { 
      if (unused != null && unused.equals("ERROR_IN_CODE")){ 
       Toast.makeText(MainActivity.this, "Error"+ Log.e(), Toast.LENGTH_SHORT).show(); 
      }else{ 
       Toast.makeText(MainActivity.this, "Sukses", Toast.LENGTH_SHORT).show(); 
      } 
       loading.dismiss(); 
     } 

    } 
} 
+0

가능한 중복으로 읽기를 할 수있는 사용 내 코드를 부착 응용 프로그램 내에서 프로그래밍 방식으로 logcat] (http://stackoverflow.com/questions/12692103/read-logcat-programmatically-within-application) – IIIIIIIIIIIIIIIIIIIIII

답변

0

Beny 푸트 라 Petir 당신이 [이 코드

catch (Exception e){ 
      Log.e("ERROR", "ERROR IN CODE: " + e.toString()); 
eror=e.toString(); 
      e.printStackTrace(); 
      return "ERROR_IN_CODE"; 
     } 

와 토스트에서의

Toast.makeText(MainActivity.this, "Error "+ eror, Toast.LENGTH_SHORT).show(); 
+0

Wonderfull이지만 Toast가 doinbackground 외부에 표시되지 않습니다. –

+0

onPostExecute 메소드에서 Toast를 인쇄 할 수 있습니다. –

+0

감사합니다. 내 문제를 해결하고 코드를 사용합니다. 감사합니다. –

관련 문제