2016-04-10 21 views
0
Bir EditText metin girişini görüntülemek ve bir ArrayAdapter kullanarak bir liste görünümü bunu göstermek istiyorum

metin görünmüyor, liste görünümü yok bir öğe eklendiğinde alır ancak metin olmadan: BuradaListView öğeleri

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.blink.blink.MainActivity"> 


     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="61dp"> 

      <EditText 
       android:layout_width="280dp" 
       android:layout_height="60dp" 
       android:hint="Type a quote .. " 
       android:id="@+id/quoteField" /> 

      <Button 
       android:layout_width="wrap_content" 
       android:layout_height="60dp" 
       android:text="Add Quote" 
       android:id="@+id/addQuote" 
       android:fontFamily="sans-serif-condensed" 
       android:background="#f6546a" 
       android:layout_marginLeft="10dp" 
       android:layout_toRightOf="@id/quoteField" /> 
     </RelativeLayout> 
     <ListView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/quotelistView" 
      android:foreground="#f6546a"/> 

</LinearLayout> 

ve: sen dizideki verileri değiştirmek adaptör her şey sıfırlamak gerekmez

public class MainActivity extends AppCompatActivity { 


    Button createBtn ; 
    EditText quoteField; 
    ListView quotesListView; 
    ArrayList<String> quotesArrayList; 


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

     createBtn = (Button) findViewById(R.id.addQuote); 
     quoteField = (EditText) findViewById(R.id.quoteField); 
     quotesListView = (ListView) findViewById(R.id.quotelistView); 

     quotesArrayList = new ArrayList<>(); 



     createBtn.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) 
      { 
       quotesArrayList.add(quoteField.getText().toString()); 
       SetAdapter(); 
       quoteField.setText(" "); 
      } 
     }); 
    } 


     private void SetAdapter() 
     { 
      ArrayAdapter<String> Adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, quotesArrayList); 
      quotesListView.setAdapter(Adapter); 
     } 

} 

cevap

0

kodudur. Ne yapmalıyım adaptöre bir başvuru tutmak ve

public class MainActivity extends AppCompatActivity { 


    Button createBtn ; 
    EditText quoteField; 
    ListView quotesListView; 
    ArrayList<String> quotesArrayList; 
    ArrayAdapter<String> adapter; 


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

     createBtn = (Button) findViewById(R.id.addQuote); 
     quoteField = (EditText) findViewById(R.id.quoteField); 
     quotesListView = (ListView) findViewById(R.id.quotelistView); 

     quotesArrayList = new ArrayList<>(); 
     adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, quotesArrayList); 
     quotesListView.setAdapter(adapter); 



     createBtn.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) 
      { 
       quotesArrayList.add(quoteField.getText().toString()); 
       adapter.notifyDataSetChanged(); 
       quoteField.setText(" "); 
      } 
     }); 
    } 

} 
+0

Teşekkürler, işe yaradı! – Thipharete19

0

Deneyin listedeki verileri değiştirdiğinizde adapter.notifyDataSetChanged() çağrısıdır!

createBtn.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) 
     { 
      quotesArrayList.add(quoteField.getText().toString()); 
      SetAdapter(quotesArrayList); 

      quoteField.setText(" "); 
     } 
    }); 
} 


    private void SetAdapter(ArrayList<String> quotesArrayList) 
    { 
     ArrayAdapter<String> Adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, quotesArrayList); 
     quotesListView.setAdapter(Adapter); 
     Adapter.notifyDataSetChanged(); 
    }