-1

接続ハンドラ クラスにトーストを実装しようとしています。

public class server implements Runnable {
private static final String TAG = "myLogs";
.....
public void run()
{
.....
while (true) {
    try {

       client = server.accept();
        // here i want to show message, when client is connected
         Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT).show();
          Log.d(TAG, "client connected....");

しかし、makeText と getApplicationContext(); でエラーが発生しました。下線が引かれています..

4

6 に答える 6

1

ランナブルで getApplicationContext() を取得することはできません。アクティビティまたはサービスでのみ取得できます。ランナブルでアプリケーション コンテキストを取得するには、アクティビティのコンテキストをランナブルに渡す必要があります。

しかし、あなたのケースでは、アクティビティ コンテキストでトーストを表示したいと考えています。これを行うには、アクティビティ オブジェクトを渡し、runOnUIThread メソッドを呼び出します。乾杯のコンテキストとしてアクティビティを提供します。

public class Server implements Runnable {
private static final String TAG = "myLogs";
private Activity myActivity;

  public Server(final Activity activity) {
    this.myActivity = activity;
  }

.....
public void run()
{
.....
while (true) {
    try {

       client = server.accept();
        // here i want to show message, when client is connected
        myActivity.runOnUiThread(new Runnable() {
          public void run() {
            Toast.makeText(myActivity, "msg msg", Toast.LENGTH_SHORT).show();
            Log.d(TAG, "client connected....");    
          }
       });

これは、ここでも説明されています: Android: Toast in a thread

于 2013-04-26T13:42:14.407 に答える
0

説明はこちら

コンストラクターなどを使用して Activity コンテキストを渡す必要があるかもしれませんが、トーストに applicationcontext を使用することはできません。

于 2013-04-26T13:11:09.067 に答える
0

最初に、正しいインポートを行っていることを確認してください (インポート android.widget.Toast; または import android.widget.*; を使用できると思います)。次に、getApplicationContext() または activityname.this の代わりに this を使用してみてください。

于 2013-04-26T13:15:58.587 に答える
0

これを試して。

コンテキスト コンテキスト。コンテキスト=これ;

Toast.makeText(context, "msg msg", Toast.LENGTH_SHORT).show();

また

Toast.makeText(ClassName.this, "msg msg", Toast.LENGTH_SHORT).show();

また

Toast.makeText(this.getApplicationContext(), "msg msg", Toast.LENGTH_SHORT).show();

于 2013-04-26T13:31:42.930 に答える