2014-11-29 3 views
0

Google Keep 앱과 같이 동적으로 생성 된 EditText보기를 만들려고합니다. 사용자가 하나의 편집 텍스트보기에 텍스트를 입력하기 시작하면 그 아래에 새로운 빈 문구가 생성됩니다.Google Keep과 같이 동적으로 편집 문구보기를 만듭니다.

나는 편집 텍스트보기를 포함 할 어댑터가있는 RecyclerView를 설정했습니다.

어떻게 접근하면 좋을까요?

답변

4

이 작업을 수행하는 가장 좋은 방법은 TextView와 그 아래에있는 textView의 목록보기를 만드는 것입니다.

사용자가 TextView에 내용을 입력하고 save를 누를 때마다 ListView를 채우는 데 사용중인 arrayList에 새 항목을 추가하십시오. 그런 다음 ListView를 새로 고칩니다. 그 트릭을해야합니다. 당신의 activity_main.xml에서

package com.junglesofts.strsend; 

import android.support.v7.app.ActionBarActivity; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.EditText; 
import android.widget.TableLayout; 
import android.widget.TableRow; 
import android.os.Bundle; 

public class MainActivity extends ActionBarActivity { 

    public int i = 1; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     TableLayout ll = (TableLayout) findViewById(R.id.tblMain); 
     View mTableRow = null; 
     mTableRow = (TableRow) View.inflate(getApplicationContext(), R.layout.mrowrayout, null); 
     EditText txtNew = (EditText)mTableRow.findViewById(R.id.txtNew); 
     txtNew.setId(i); 
     txtNew.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       ++i; 
       TableLayout ll = (TableLayout) findViewById(R.id.tblMain); 
       View mTableRow = null; 
       mTableRow = (TableRow) View.inflate(getApplicationContext(), R.layout.mrowrayout, null); 
       EditText txtNew = (EditText)mTableRow.findViewById(R.id.txtNew); 
       txtNew.setId(i); 
       txtNew.setOnClickListener(this); 
       mTableRow.setTag(i); 
       ll.addView(mTableRow); 
      } 
     }); 

     mTableRow.setTag(i); 
     ll.addView(mTableRow); 
    } 
} 

: 당신의 MainActivity.java에서

+0

감사합니다. 비슷한 것을 시도했지만 바보 같은 오류로 인해 작동하지 못했습니다. 제안 된 방법을 사용하여 다시 시도한 후 내 버그를 찾을 수있었습니다! 감사! – user2844485

1

및 레이아웃 폴더에

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/tblMain" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.junglesofts.strsend.MainActivity"> 
새로운 레이아웃을 생성하고 mrowrayout.xml하기 위해 이름을 변경하고 그 안에 :

<TableRow xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayoutRow" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <EditText android:id="@+id/txtNew" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Enter your text!"/> 

</TableRow> 

나는 그것을 테스트하고 그것은 나를 위해 작동합니다. 나는 그것이 당신을 위해 일해야한다고 생각합니다. 그것이 효과가 있다면 제 대답을 받아주세요.

관련 문제