1

ユーザーが のデータを編集できるアプリケーションを開発していますListView。その ListViewの中に入れたいEditTextのですが、この edittext は TextView のように動作する必要がありますが、ユーザーがクリックするとEditText、この機能を実現するにはどうすればよいですか?

実際、ListView 内の EditText は見苦しく、EditText はデフォルトで TextView のように見える必要がありますが、ユーザーがデータを編集しようとすると、EditText のように見えるはずです。

私の質問が明確であることを願っています。

4

6 に答える 6

1

アプリで使用した以下のファイル。

レイアウト フォルダー内のmain.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"    
    android:orientation="vertical" >
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
    <EditText android:layout_width="fill_parent"
        android:padding="5dip"
        android:layout_height="wrap_content"
        android:textColor="#00f"
        android:textSize="20dip"
        android:background="@drawable/bg" />    
    <EditText android:layout_width="fill_parent"
        android:padding="5dip"
        android:layout_height="wrap_content"
        android:textColor="#00f"
        android:textSize="20dip"
        android:background="@drawable/bg" />
</LinearLayout>

drawableフォルダー内のmyshape.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">   
    <solid   android:color="#fff"/> 
    <corners android:radius="2dip" />   
    <stroke android:width="2dip"
        android:color="#ff4500" />
</shape>

drawableフォルダー内のbg.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >    
    <item android:state_enabled="true"        
        android:state_focused="true"                        
        android:drawable="@drawable/myshape"/>    
</selector>

Java ファイル

public class EditTextSelector extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
于 2012-01-26T13:31:45.220 に答える
0

EditTextのセレクターを使用して、さまざまな状態を作成します。アイドル状態の場合は、背景として通常の色の描画可能を指定し、フォーカスされている場合は、実際のEditText背景に似た9パッチのPNG描画可能を使用します。

お役に立てば幸いです。セレクターの使い方がわからない場合は、お気軽にお問い合わせください。

サンプルのスクリーンショット

アプリで1つのTextVuewビューと2つのEditTextビューを使用しています。以下のスクリーンショットを確認して、要件に応じてEditTextがどのように表示されるかを確認してください。あなたがそれらを好きで、それが実際に必要であるならば、私はここにコードを投稿します。

初期画面

ここに画像の説明を入力してください

最初のEditTextの入力を取得している間

ここに画像の説明を入力してください

2番目のEditTextの入力を取得している間

ここに画像の説明を入力してください

于 2012-01-26T12:32:28.060 に答える
0

さて、私はtextviewを使用することをお勧めします..それをクリックすると、親のeditText(add View / removeView)にスワップします..フォーカスが変更されると、新しい変更でtextviewに戻ります..ポップアップを使用する2番目の解決策送信するための完了ボタンとリストに戻るために戻るための編集目的のダイアログ。editTextのスタイルを変更する3番目のソリューション:

editText.setBackgroundResource(R.layout.writemode);
//later after this item loses focus, use:
editText.setBackgroundResource(R.layout.readmode);
于 2012-01-26T12:32:57.437 に答える
0

setCursorVisible(false) を使用して、編集テキスト setCursorVisible(true) のカーソルとオンクリックを非表示にします。これで、背景色も edittext の白に設定

于 2012-01-26T12:54:47.590 に答える
-1

AlertDialog を使用して、ユーザーに入力を促すことができます。

于 2012-01-26T12:37:41.007 に答える