2012-01-11 6 views
0

名前を入力するのにEditTextボックスがあります。名前を入力して追加ボタンをクリックすると、Arrayに名前を保存する必要があります。この名前は次のアクティビティで使用でき、EditTextボックスもクリアできます。私はこれが動作していると思うが、それが正しいかどうかはわからないが、以下のコードを見ることができる。OnClick内のビューを追加

追加ボタンをクリックしたときの私のアクチュアールに関する質問は少し異なります。追加ボタンの横に追加したばかりの名前を表示する必要があります。追加ボタンが追加されている場合は、リストビューの一種。削除ボタンをクリックすると、名前を削除して画面からボタンを削除し、名前を配列から削除する必要があります。

コードは、私がonClickメソッド内TextViewButtonを追加するようなものを考えています

enter image description here

これまでのところ、私はアダプタからリストビューを移入しようとしています更新されますがありませんsucsessとされています。 Removeボタンをクリックすると、playerListからTextView文字列を削除する必要があります。私はViewも削除して、もはや見ることができないと思います。

これのコード側で私を助けてくれるのは分かりません。

<TextView 
    android:id="@+id/playername" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="TextView" /> 

<Button 
    android:id="@+id/remove" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Remove" /> 

答えて

2

public class AddRemove extends Activity { 

ArrayList<String> playerList = new ArrayList<String>(); 
String playerlist[]; 
ListView listview; 



@Override 
protected void onCreate(Bundle savedInstanceState) { 
// TODO Auto-generated method stub 
super.onCreate(savedInstanceState); 
setContentView(R.layout.addremove); 
ListView listView = (ListView)findViewById(R.id.namelistview); 
listview.setAdapter(new myAdapter(getApplicationContext(), R.layout.listview_content, list)); 

Button confirm = (Button) findViewById(R.id.add); 
confirm.setOnClickListener(new OnClickListener() { 
public void onClick(View v) { 
EditText playername = (EditText) findViewById(R.id.userinput); 
String name = playername.getText().toString(); 
playerList.add(name); 
playername.setText(""); 

}}); 

Button play = (Button) findViewById(R.id.playnow); 
play.setOnClickListener(new OnClickListener() { 
public void onClick(View v) { 
Intent i = new Intent(demo.AddRemove.this, demo.PasswActivity.class); 
Bundle extras = new Bundle(); 
extras.putSerializable("com.example.playerList", playerList); 
i.putExtras(extras); 
startActivity(i); 

}}); 
} 

class myAdapter extends ArrayAdapter{ 

List<String> users; 
public myAdapter(Context context, int textViewResourceId, List<String> list) { 
super(context, textViewResourceId); 
// assign list 
users = list; 
// TODO Auto-generated constructor stub 
} 

public View getView(int position, View convertView, ViewGroup parent) { 
// TODO Auto-generated method stub 
return super.getView(position, convertView, parent); 

} 

} 
} 

listview_contentのXMLは、あなたは人のリストを表示するには、リストビューを使用する必要があります。このリスト内には、各行に2つのコンポーネントがあるレイアウトがあります。これらには、1つのTextViewと1つのButton、その人の名前、およびコンポーネントを削除するボタンが含まれます。ボタンがクリックされると、アダプタから項目を削除し、変更されたことをListViewに通知します。

ListViewを構成するとき、アダプタにはListViewの各行を構成するためのカスタムアダプタが必要です。

更新

サンプルコード:すべての

http://android.vexedlogic.com/2011/04/02/android-lists-listactivity-and-listview-ii-%E2%80%93-custom-adapter-and-list-item-view/

+0

私のXMLの 'ListView'に' Button'と 'TextView'を追加できますか?あなたはJavaで私を始めることができますか、私たちはチャットに参加できますか? – Matt

+1

+1。あなたのケースでは、カスタムアダプタを使用したListViewが最適なオプションのようです。 –

0

まず、あなたは、コンテキストを参照して、各のTextViewを初期化する必要があります。だから、あなたのonClickで、それはあなたも視野にあなたののLinearLayoutを追加するのonCreateでsetContentViewへの呼び出しを持っていることを考えると、ViewOnClick.java:

public class ViewOnClick extends Activity { 
    LinearLayout.LayoutParams layoutParams; 
    LinearLayout ll; 
    static int i; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Button b = (Button)findViewById(R.id.Button01); 
     ll = (LinearLayout)findViewById(R.id.ll); 
     layoutParams = new LinearLayout.LayoutParams 
     (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     b.setOnClickListener(new OnClickListener(){ 

      @Override 
      public void onClick(View v) { 
       TextView view = new TextView(ViewOnClick.this);    
       view.setText(++i+" view"); 
       ll.addView(view, layoutParams); 

      }}); 
    } 
} 

セカンドであることを考えると、あなたは毎回setContentView(linearLayout)を呼び出す必要はありませんボタンをクリックします。

+0

私たちはチャットに参加できますか? – Matt

+0

あなたの現在のアプローチに従うことをお勧めしません。ユーザーには最適ではありません。 – JoxTraex

関連する問題