2015-02-24 82 views
-1

我正在處理在我的java代碼中編譯錯誤的問題,我無法理解如何更正。在java主要活動的Android工作室錯誤?

第一個錯誤:

main cannot be resolved or is not a field ....

二錯誤:

The method OnKeyListener(new MainActivity.OnKeyListener(){}) is undefined for the type EditText

package com.uichat;  
import android.app.Activity;  
import android.content.Intent; 
import android.database.DataSetObserver; 
import android.os.Bundle; 
import android.view.KeyEvent; 
import android.view.View; 
import android.widget.AbsListView; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ListView; 
import java.io.ByteArrayOutputStream; 

public class MainActivity extends Activity{ 
    private ChatArrayAdapter adp; 
    private ListView list; 
    private EditText ChatText; 
    private Button send; 
    Intent In; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Intent I = getIntent(); 
     send = (Button) findViewById(R.id.btn); 
     list = (ListView) findViewById(R.id.list); 
     adp = new ChatArrayAdapter(getApplicationContext(), R.layout.chat); 
     ChatText = (EditText) findViewById(R.id.chat); 
     ChatText.setKeyListener(new OnKeyListener() { 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) { 
        return sendChatMessage(false); 
       } 
       return false; 
      } 
     }); 

     send.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View arg0) { 
       sendChatMessage(false); 
      } 
     }); 
     list.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); 
     list.setAdapter(adp); 

     adp.registerDataSetObserver(new DataSetObserver() { 
      @Override 
      public void onChanged() { 
       super.onChanged(); 
       list.setSelection(adp.getCount() - 1); 
      } 
     }); 
    } 

    private boolean sendChatMessage(boolean side) { 
     adp.add(new ChatMessage(side, ChatText.getText().toString())); 
     ChatText.setText(""); 
     side = !side; 
     return true; 
    } 

    public ListView getList() { 
     return list; 
    } 

    public void setList(ListView list) { 
     this.list = list; 
    } 

    class EditView { 
     private String text; 

     public void setOnKeyListener(OnKeyListener onKeyListener) { 
     } 

     public boolean getText() { 
      return true; 
     } 

     public void setText(String text) { 
      this.text = text; 
     } 
    } 

    class OnKeyListener { 
    } 
} 
+2

這將是有益的,如果你有錯誤/堆棧跟蹤。 – ChiefTwoPencils 2015-02-24 22:00:09

+3

你有什麼錯誤?當我們甚至不知道什麼是錯的時候,很難提供幫助。 – childofsoong 2015-02-24 22:00:12

+0

第二個錯誤。方法OnKeyListener(新的MainActivity.OnKeyListener(){})未定義類型EditText – Frrank616 2015-02-24 22:05:50

回答

1

第一個錯誤:

main cannot be resolved or is not a field ....

setContentView(R.layout.main); 

嘗試s來引用一個叫做「main」的不存在的R.layout字段

它缺少,因爲您的res/layout樹中沒有有效的「main.xml」,或者因爲您需要清理重建您的項目以更新那裏的更改。 (偶然導入Android自己的R類也可以,但是你沒有在你提供的代碼中這樣做)。

二錯誤:

The method OnKeyListener(new MainActivity.OnKeyListener(){}) is undefined for the type EditText

你應該調用該方法的一個EditText是setOnKeyListener()

傳遞將需要一個實現View.onKeyListener

因此內部

一類的說法
class OnKeyListener { 
} 

個需要有所需的方法

class OnKeyListener { 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     //insert code here 
     return true; 
    } 
} 

看到http://developer.android.com/reference/android/view/View.OnKeyListener.html

+0

不工作兄弟 – Frrank616 2015-02-24 23:44:02

+0

每一件事情現在正在工作,但是thr是一個新錯誤... ChatText.OnKeyListener(new OnKeyListener(){....在ChatText上 – Frrank616 2015-02-25 00:14:43

+0

正如我指出的 – 2015-02-25 02:18:45