我已經創建了一個自定義ListView
,其中我添加了兩個TextView
,TextView
之一顯示日期,其他TextView
顯示在該特定日期輸入的權重。現在我想要的是在第二個TextView
顯示權重,文本視圖的寬度設置爲用戶輸入的權重。我寫的代碼顯示了一些問題。意味着當用戶輸入重量70和75時,寬度TextView
顯示相同的尺寸。爲什麼會這樣。請任何人都幫我解決這個問題。對於列表活動如何在textView中設置不同的寬度
XML代碼
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/img_allnotes_bg" >
<TextView
android:id="@+id/txt_weight_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/image_divder1"
android:layout_marginTop="15dp"
android:gravity="center_horizontal|center_vertical"
android:text="@string/txt_weight_title"
android:textColor="#5f5f5f"
android:textSize="@dimen/font_size_page_text" >
</TextView>
<ListView
android:id="@+id/weight_list_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/bottom_control_bar"
android:layout_alignParentLeft="true"
android:layout_below="@+id/image_divider2"
android:layout_marginBottom="15dp"
android:layout_marginTop="2dp"
android:cacheColorHint="#00000000"
android:divider="@null"
android:dividerHeight="0dp"
android:listSelector="#00000000" >
</ListView>
XML代碼列表視圖項
<?xml version="1.0" encoding="utf-8"?>
<TextView
android:id="@+id/txt_weightdate_display"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="60dp"
android:layout_marginRight="60dp"
android:focusable="false"
android:textColor="#5f5f5f"
android:textSize="@dimen/font_size_page_text" >
</TextView>
<TextView
android:id="@+id/txt_weight_display"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/txt_weightdate_display"
android:layout_marginLeft="60dp"
android:layout_marginRight="60dp"
android:layout_marginTop="5dp"
android:gravity="center"
android:focusable="false"
android:textColor="#5f5f5f"
android:background="#00FFFF"
android:textSize="@dimen/font_size_page_text" >
</TextView>
Java代碼生成列表視圖
public void displayWeights()
{
m_allWeightsList = (ListView) findViewById(R.id.weight_list_view);
int iWeightCount = CycleManager.getSingletonObject().getWeightCount();
m_weightsdateDisplay = new String[iWeightCount];
m_weightDisplay = new String[iWeightCount];
m_enStage = new int[iWeightCount];
int i;
for (i=0; i<iWeightCount; i++)
{
m_weightsdateDisplay[i] = "";
Date dtWeightDate = CycleManager.getSingletonObject().getWeightDate(i);
m_enStage[i] = CycleManager.getSingletonObject().getCycleStage(dtWeightDate);
m_weightsdateDisplay[i] = formator.format(dtWeightDate.getTime());
m_weightDisplay[i] = "";
m_weightDisplay[i] = CycleManager.getSingletonObject().getWeight(dtWeightDate);
}
m_adapter = new AllWeightsAdapter(this, m_weightsdateDisplay, m_weightDisplay);
m_allWeightsList.setAdapter(m_adapter);
}
class AllWeightsAdapter extends BaseAdapter
{
public String m_weightsDateDisplay[];
public String m_weightsDisplay[];
public Activity m_context;
public LayoutInflater m_inflater;
public AllWeightsAdapter(Activity m_context, String[] m_weightsDateDisplay, String[] m_weightsDisplay)
{
super();
this.m_context = m_context;
this.m_weightsDateDisplay = m_weightsDateDisplay;
this.m_weightsDisplay = m_weightsDisplay;
this.m_inflater = (LayoutInflater)m_context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public AllWeightsAdapter()
{
}
public int getCount()
{
return m_weightsDateDisplay.length;
}
public Object getItem(int position)
{
return null;
}
public long getItemId(int position)
{
return 0;
}
public class ViewHolder
{
TextView txt_weightdt_display;
TextView txt_weight_display;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
Typeface face = Typeface.createFromAsset(m_context.getAssets(), "fonts/Cicle Semi.ttf");
if(convertView == null)
{
holder = new ViewHolder();
convertView = m_inflater.inflate(R.layout.all_weights_list, null);
holder.txt_weightdt_display = (TextView) convertView.findViewById(R.id.txt_weightdate_display);
holder.txt_weight_display = (TextView) convertView.findViewById(R.id.txt_weight_display);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder)convertView.getTag();
}
// Added Weight Date in List View Component
holder.txt_weightdt_display.setText(m_weightsDateDisplay[position]);
holder.txt_weightdt_display.setTypeface(face);
// Added Weights in List View Component
double factor, width, scale, borderwidth, minScreenWidth = 40, maxScreenWidth = 200;
double maxWeight = CycleManager.getSingletonObject().getMaxWeight();
double minWidth = CycleManager.getSingletonObject().getMinWeight();
scale = maxWeight - minWidth;
factor = (maxScreenWidth - minScreenWidth)/scale;
width = (maxWeight - Double.parseDouble(m_weightsDisplay[position])) * factor;
borderwidth = maxScreenWidth - width;
holder.txt_weight_display.setText(m_weightsDisplay[position]);
holder.txt_weight_display.setMinWidth((int)borderwidth);
holder.txt_weight_display.setTypeface(face);
return convertView;
}
}
}
Screnn拍攝
我猜70是> =最大尺寸對於視圖,請嘗試一些值,如60,65。如果是這樣,那麼可以將寬度改爲一半,以避免達到最大尺寸 – MikeIsrael 2012-04-24 07:25:39
但是視圖寬度是包裝內容..如何解決我的問題因此,我已經進入寬度的重量是沿着這個調整... – AndroidDev 2012-04-24 07:30:25
改變你的縮放比例,以便它的長度更小。你可以玩弄視圖以及爲該元素提供更多空間 – MikeIsrael 2012-04-24 07:35:55