2013-06-22 81 views
-1

我想實現你在那裏輸入文本的彈出窗口,並把它添加到ListView但是我收到以下錯誤:該方法的getText()是未定義的類型的ListView

The method getText() is undefined for the type ListView

我的MainActivity .java代碼如下:

package com.mkyong.android; 

import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.Context; 
import android.content.DialogInterface; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.ListView; 

public class MainActivity extends Activity { 

    final Context context = this; 
    private Button button; 
    private ListView result; 

    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    // components from main.xml 
    button = (Button) findViewById(R.id.buttonPrompt); 
    result = (ListView) findViewById(R.id.listView1); 

    // add button listener 
    button.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 

      // get prompts.xml view 
      LayoutInflater li = LayoutInflater.from(context); 
      View promptsView = li.inflate(R.layout.prompts, null); 

      AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
        context); 

      // set prompts.xml to alertdialog builder 
      alertDialogBuilder.setView(promptsView); 

      final ListView userInput = (ListView) promptsView 
        .findViewById(R.id.ListTitleDialogUserInput); 

      // set dialog message 
      alertDialogBuilder 
        .setCancelable(false) 
        .setPositiveButton("Create", 
          new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog, 
             int id) { 
            // get user input and set it to result 
            // edit text 
            result.setText(userInput.getText()); 
           } 
          }) 
        .setNegativeButton("Cancel", 
          new DialogInterface.OnClickListener() { 
           public void onClick(DialogInterface dialog, 
             int id) { 
            dialog.cancel(); 
           } 
          }); 

      // create alert dialog 
      AlertDialog alertDialog = alertDialogBuilder.create(); 

      // show it 
      alertDialog.show(); 

     } 

    }); 

} 

} 

感謝您的協助。

編輯:對於其中ListTitleDialogUserInput定義是如下用於prompts.xml的代碼;

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/layout_root" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <TextView 
      android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="List Title: " 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <EditText 
      android:id="@+id/ListTitleDialogUserInput" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" > 

      <requestFocus /> 
    </EditText> 

</LinearLayout> 
+1

你究竟在做什麼'result.setText(userInput.getText());'這裏的結果和userInput都是Listview,所以getText或setText不適用.. – CRUSADER

+0

我從http:// www複製了一個教程.mkyong.com/android/android-prompt-user-input-dialog-example /和他使用EditText,但我想在一個ListView中顯示結果。你能幫我嗎?謝謝。 – user2511675

+0

爲什麼你的'userInput'是一個'ListView'?它不應該是一個'EditText'嗎?我們能否看到ID爲ListTitleDialogUserInput的視圖被定義的文件? –

回答

0

不能直接就把文本在ListView - ListView的目的是遏制其他意見。

把文本兼容視圖,例如您的ListView中一個TextView,並調用的setText()。

如果你真的想要,可以直接顯示文本一個ListView,你必須讓自己的子類延伸ListView和做一些奇怪的覆蓋或替換的魔法,讓你直接就可以顯示文本。

+0

我很抱歉,我會如何去在我的ListView中放置一個文本兼容的視圖,如TextView?有人不能提供一些說明或XML代碼,說明如何讓彈出式窗口出現,然後在彈出菜單的文本框中輸入相關內容並將其添加到列表中?再次感謝。 – user2511675

相關問題