2015-05-25 55 views
0

我已經創建了一個listView,它在每個項目中都有seekBartextView。我需要根據seekBar運動更新textViewListView行是基於數據庫table.How行數,我可以做到這一點得到產生的?。我的代碼如下安卓seekbar更新列表視圖中的文本視圖

activity_list_criteria.xml

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="35dp"> 

    //Label criteria 
    <TextView 
     android:id="@+id/txtViewCriteria" 
     android:textSize="20sp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Criteria  : " /> 

    //Label criteria from db 
    <TextView 
     android:id="@+id/criteriaName" 
     android:textSize="20sp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/textView1" 
     android:text="Criteria" /> 

    <TextView 
     android:layout_width="180dp" 
     android:layout_height="fill_parent" /> 


</LinearLayout> 

//SeekBar layout 
<SeekBar 
    android:id="@+id/sbBar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:progress="0" 
    android:max="5" 
    android:paddingTop="20dp" /> 

//TextViews for SeekBarlegend 
<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/tvLabel1" 
     android:paddingLeft="10dp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="0" /> 

    <TextView 
     android:id="@+id/tvLabel3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:paddingRight="10dp" 
     android:text="5" /> 

</RelativeLayout> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="35dp"> 

    //Label weightage 
    <TextView 
     android:id="@+id/txtViewWeightage" 
     android:textSize="20sp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Weightage: "/> 

    //Label weightage from db 
    <TextView 
     android:id="@+id/criteriaWeightage" 
     android:textSize="20sp" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/stuMatric" 
     android:layout_toRightOf="@+id/textView2" 
     android:text="Weightage" /> 

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

</LinearLayout> 

activity_display_assessment.xml

//Title Layout 
<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="60dp" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="60dp" 
     android:background="@drawable/orangehome" 
     android:orientation="horizontal"> 

     <TextView 
      android:layout_width="110dp" 
      android:layout_height="fill_parent" /> 

     <TextView 
      android:layout_width="170dp" 
      android:text="Evaluate" 
      android:layout_gravity="center_horizontal" 
      android:gravity="center" 
      android:textColor="#FFFFFF" 
      android:textSize="30sp" 
      android:layout_height="60dp" /> 

     <TextView 
      android:layout_width="50dp" 
      android:layout_height="fill_parent" /> 

     <Button 
      android:id="@+id/btnLogout" 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
      android:layout_gravity="center_vertical" 
      android:background="@drawable/logout"/> 

    </LinearLayout> 

</LinearLayout> 

//Criteria layout 
<TextView 
    android:id="@+id/txtViewSubject" 
    android:paddingTop="10dp" 
    android:layout_gravity="center_horizontal" 
    android:gravity="center" 
    android:layout_width="300dp" 
    android:layout_height="60dp" 
    android:textSize="18sp" 
    android:textColor="#000000" 
    android:text="Criteria"/> 

//List view for criteria 
<ListView 
    android:id="@+id/criteriaListView" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" /> 

顯示yAssessmentActivity.java

public class DisplayAssessmentActivity extends Activity { 

    ListDatabaseHandler listCriteria; 
    private SimpleCursorAdapter dataAdapter; 

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

    //Open connection and get instance from database 
    listCriteria = new ListDatabaseHandler(this); 
    listCriteria.open(); 

    //Delete all data 
    listCriteria.deleteAllCriteria(); 

    //Add data 
    listCriteria.insertSomeCriteria(); 

    //Retrieve data from database and display in list view 
    displayCriteriaListView(); 


} 

private void displayCriteriaListView() { 

    Cursor cursor = listCriteria.fetchAllCriteria(); 

    // The desired columns to be bound 
    String[] columns = new String[] { 
      ListDatabaseHandler.KEY_CRITERIANAME, 

    }; 

    // the XML defined views which the data will be bound to 
    int[] to = new int[] { 
      R.id.criteriaName, 
    }; 

    // create the adapter using the cursor pointing to the desired data 
    //as well as the layout information 
    dataAdapter = new SimpleCursorAdapter(
      this, R.layout.activity_list_criteria, 
      cursor, 
      columns, 
      to, 
      0); 

    ListView listView = (ListView) findViewById(R.id.criteriaListView); 
    // Assign adapter to ListView 
    listView.setAdapter(dataAdapter); 

    //Action when click on the item 
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> listView, View view, 
           int position, long id) { 
      // Get the cursor, positioned to the corresponding row in the result set 
      Cursor cursor = (Cursor) listView.getItemAtPosition(position); 

      String criteria = cursor.getString(cursor.getColumnIndexOrThrow("criteria_name")); 

      String weightage = 
        cursor.getString(cursor.getColumnIndexOrThrow("criteria_weightage")); 

      //Toast.makeText(getApplicationContext(), 
      //subjectName, Toast.LENGTH_SHORT).show(); 


      Intent intentResult = new Intent(getApplicationContext(), ResultActivity.class); 

      startActivity(intentResult); 

     } 
    }); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_display_assessment, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

}

我應該爲活動代碼嗎?你的建議對我很有價值。

回答

1

使用BaseAdapter或ArrayAdapter創建自定義列表適配器。 連接適配器的ListView 在getView()適配器的方法來獲取搜索條的引用,並設置監聽器來搜索條是這樣的:

final TextView text=convertView.findViewById(R.id.textview);  
final SeekBar seekbar=(SeekBar) convertView.findViewById(R.id.seekBar1);  
sk.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {  

@Override  
public void onStopTrackingTouch(SeekBar seekBar) {  
    // TODO Auto-generated method stub  
}  

@Override  
public void onStartTrackingTouch(SeekBar seekBar) {  
    // TODO Auto-generated method stub  
}  

@Override  
public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {  
    // TODO Auto-generated method stub  

    text.setText(progress); 


}  
});  
+0

它的作品。非常感謝你。 –